#19691 - What happens when you type a single letter into an “ordinary” text box
https://juretriglav.si/what-happens-when-you-type-a-single-letter/Tous les trucs qui se passent quand on clic sur un champ texte et qu’on insère la lettre "a", sur des champs texte de divers éditeurs en ligne (Google Docs & co).
C’est… fou.
Là normalement, de base, tout ça ne fait qu’un nombre limité d’actions, mais quand-même important quand on y pense.
Quand on glisse la souris sur un champ, qu’on clic pour faire le focus, puis qu’on tape la lettre A :
- mouse over // la souris entre sur l’élément HTML)
- clic // un clic est fait
- focus // on prend le focus sur le champ
- key down // on enfonce la touche du clavier
- key press // l’action de l’enfoncement [insertion d’une lettre] est enregistrée
- key up // la touche remonde
- change // le contenu du champ a changé, c’est un événement à lui seul pour le navigateur
Bien-sûr, pour chaque de ces événements, il peut être associé une action choisie par le concepteur. Si je veux qu’au clic la page devienne rouge, je peux. Si je veux que la page deviennent verte en zoom 400% lors de la pression d’une touche, c’est faisable. Si je veux que le contenu est envoyé en ligne et enregistré une fois que toute l’action est terminée, je peux également faire ça.
Et souvent, tout ceci peut avoir lieu pour des dizaines voire des centaines d’éléments par page, plusieurs fois par seconde.
Sur Google Docs, chaque élément de la page, chaque menu, bouton, case, ligne de texte, correspond à un élément avec des écouteurs d’événements (eventListeners()) comme ça !
Le fonctionnement d’un navigateur est passionnant, et les choses les plus simples pour nous ne le sont pas pour une machine.
Et là c’est encore à un niveau d’abstraction élevé : je ne parle pas des milliards d’impulsions électriques, lumineuses, ou d’ondes (clavier ou souris sans fil, et Wifi) qui ont lieu pour chaque touche du clavier pressé.
… de la touche du clavier sans fil que l’on enfonce, au « A » qui s’affiche sur l’écran grâce des sous-pixels commandés individuellement ! En passant par le firmware du clavier qui détecte la touche, son code binaire, envoie ça à sa puce bluetooth, qui chiffre ça et transforme ça en ondes radio, qui sont captées par le récepteur Bluetooth du PC, qui décode ça, détecte la bonne touche, envoie ça à la mémoire et au CPU, qui envoie l’ordre à la carte graphique pour modifier quelques pixels sur un écran qui en compte >10 millions…
… il y a tellement de composants qui entrent en jeu et qui peuvent soudainement ne plus fonctionner, que le simple faut que ça tombe en marche 3,2 milliards de fois par seconde relève presque d’un miracle.