Attention : Le contenu de ces pages n'a pas été mis à jour depuis longtemps. Il est probablement obsolète pour Firefox 4.0/Gecko 4.0 et supérieur. Pour du contenu plus récent, allez consulter developer.mozilla.org.

Prog evt

Programmation événementielle avec Javascript

Quelques considérations qui peuvent paraître évidentes pour certains...

Javascript est un langage interprété qui interagit dans un environnement profondément événementiel. L'événement c'est la possibilité de lancer des bouts de codes javascripts quand tel ou tel événement se produit.

Ceci donne une illusion de multi-tâches, car de nombreuses fonctions peuvent se lancer et semblent ne pas spécialement s'attendre. Et nous n'avons pas sous les yeux un programme sous la forme d'une longue séquence d'instructions.

Or ce n'est qu'une illusion : si Mozilla dans son entier est très peu multithread, et si javascript l'est, l'interface utilisateur pour des raisons de sécurité relative aux threads, n'est executée que sur un seul thread ! Donc les instructions sont lancées séquentiellement et sans concept d'interruption !

Deux constatations importantes en découlent :

  1. Une boucle infinie en javascript empêchera toute autre fonction javascript de s'exécuter, même une fonction lancée suite à un événement. Un événement ne peut être appelé que si il n'y a plus rien sous le pointeur d'instruction soit parce qu'il a atteint la fin du document, soit parce qu'il a terminé la fonction ou le bout de code qui a été appelé par l'événement...
  2. Un objet javascript manipulé par deux instructions consécutives ne peut pas avoir été modifié entre temps par un autre bout de code javascript (lancé suite à un événement par exemple). C'est un aspect qui peut avoir de l'importance dans certains cas.

Copyright © 2003-2013 association xulfr, 2013-2016 Laurent Jouanneau - Informations légales.

Mozilla® est une marque déposée de la fondation Mozilla.
Mozilla.org™, Firefox™, Thunderbird™, Mozilla Suite™ et XUL™ sont des marques de la fondation Mozilla.