Série de tests à effectuer pour comprendre l'exécution de Javascript et son modèle basé sur le diptique : boucle d'évènement, pile d'éxecution.
Ce test a pour objet de démontrer que Javascript s'éxecute dans un seul thread. Pour ce faire, il exécute la même chose en boucle durant la durée spécifiée. Ouvrez le gestionnaire des tâches de Google Chrome (Maj+Echap) pour voir que 100% d'un processeur est utilisé ou encore le gestionnaire des tâches de votre système. Vous observerez que plus aucun élément de l'interface ne réagit, notre tentative d'afficher le temps restant dans l'élément output reste vaine, on ne voit que la dernière mise à jour de ce dernier à 0.
Le but de ce test est d'appeler une fonction récursive jusqu'à provoquer un débordement de pile.
L'idée ici est d'exécuter du Javascript puis de cliquer sur "Ajouter un clic" pour observer que ces clics n'apparaissent qu'à la fin de la pile d'exécution.
Reprennons notre test n°1 pour le rendre asynchrone et profiter avantageusement de la file d'évènements. Vous remarquerez que le bouton d'ajout de clic ci-dessus fonctionne bien pendant que le code s'exécute.
Voyons si la file d'évènements est limitée. Apparemment, celle-ci est plutôt importante, 10000 évènements peuvent être stockés sans problèmes dans la pile.
Javascript : Le guide complet.