L'ordre d'exécution de JavaScript dans les pages Web peut être complexe en raison des différentes manières d'inclure des scripts externes et de l'ajout de scripts dynamiques. Pour clarifier les subtilités, examinons l'ordre de chargement et d'exécution des scripts JavaScript en fonction de différents scénarios :
Qu'il s'agisse de code en ligne ou d'un script externe chargé à partir de un URI, les scripts sont exécutés dans l'ordre de leur apparition dans la page lors de l'analyse. Par conséquent, les scripts en ligne après les scripts externes attendent que ces scripts externes se chargent et s'exécutent.
Les scripts asynchrones, marqués de l'attribut async, s'exécutent dans un ordre imprévisible. Le navigateur les charge en parallèle et les exécute sans égard à l'ordre.
Les scripts différés, avec l'attribut defer, sont chargés mais conservés jusqu'à ce que l'analyse soit terminée. Ensuite, ils s'exécutent dans l'ordre rencontré, en préservant les dépendances entre les scripts différés.
Le comportement d'insertion de scripts dynamiques varie selon les navigateurs. Par exemple, Firefox par défaut ajoute dynamiquement les balises de script à asynchrone, sauf indication contraire. Les scripts asynchrones peuvent s'exécuter immédiatement ou après l'analyse.
Compte tenu de ce qui précède, la séquence d'exécution pour le scénario décrit dans la question d'origine est la suivante :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!