Chargement synchrone de JavaScript avec document.createElement("script")
En développement web, il est souvent nécessaire de charger des fichiers JavaScript externes de manière asynchrone pour éviter de bloquer le rendu de la page. Cependant, il peut y avoir des situations où vous souhaitez charger un script de manière synchrone et l'utiliser immédiatement après.
La question en question explore la possibilité de charger de manière synchrone un fichier JavaScript (my.js) et d'utiliser immédiatement les fonctions définies dans. L'extrait de code fourni tente d'y parvenir en créant dynamiquement un élément de script à l'aide de document.createElement("script") et en l'ajoutant à l'élément head.
Malheureusement, comme le souligne correctement la réponse, ce n'est pas possible. pour charger JavaScript de manière synchrone de cette manière. Lorsqu'un script est chargé dynamiquement, le navigateur l'exécute de manière asynchrone. Cela signifie que même si le script sera éventuellement chargé, il n'y a aucune garantie quand cela se produira. Par conséquent, tenter d'appeler des fonctions à partir du script chargé immédiatement après sa création peut échouer.
La réponse suggère d'utiliser le gestionnaire d'événements onload sur l'élément de script pour exécuter du code une fois le chargement du script terminé. Bien que cela puisse fonctionner dans certains cas, il n’est pas entièrement fiable et ne se déclenche pas toujours. Surtout si le script chargé injecte un autre script contenant la fonction souhaitée.
Pour améliorer la fiabilité du chargement de script synchrone, vous pouvez envisager d'utiliser une approche différente. La réponse mentionne deux options :
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!