Existe-t-il une différence (performances, meilleures pratiques, etc.) entre l'utilisation d'une seule balise de script contenant du code incorporé ou l'utilisation de plusieurs balises de script avec le même code réparti dans le code HTML?
Par exemple:
<script>
foo();
</script>
...
<script>
bar();
</script>
contre:
<script>
foo();
bar();
</script>
Merci
Avec un script inline similaire à ce que vous avez cité, il ne devrait pas y avoir de différence much; Cependant, chaque fois que l'analyseur HTML du navigateur rencontre une balise script
, il:
"</script>"
document.write
Donc, augmenter le nombre de fois que cette séquence doit se produire peut, en théorie, augmenter le temps de chargement de votre page. Cela affecte également la mesure dans laquelle l'analyseur peut "anticiper" dans le flux de jetons, ce qui peut le rendre moins efficace.
Tout cela semble vraiment dramatique, mais il vous faudrait profiler une vraie page dans les différents navigateurs qui vous intéressent pour déterminer si elle a un impact réel.
Donc, en résumé, combinez-les autant que vous le pouvez raisonnablement. Si vous ne pouvez pas raisonnablement combiner un couple, ne vous inquiétez pas trop jusqu'à ce que/à moins que vous ne voyiez un problème réel.
Ce qui précède est pour le script en ligne. Naturellement, si vous avez plusieurs balises script
faisant référence à un ensemble de fichiers JavaScript externes, vous aurez également le problème que chacun de ces fichiers doit être téléchargé, et le lancement d'une requête HTTP est une opération coûteuse (comparativement), et il vaut donc mieux , en gros, pour les combiner dans un seul fichier.
Quelques autres points à considérer:
script
dispersées dans votre code HTML peut rendre difficile la maintenance du script.Plus:
Combiner vos scripts autant que possible est préférable à mon avis. Certains navigateurs doivent suspendre le rendu lors de l'exécution de blocs de script. Consultez la réponse à l'adresse: Javascript Performance: plusieurs blocs de script par rapport à un bloc plus important
Jusqu'à ce stade, tout le code JavaScript était dans une seule balise, ce n'est pas nécessairement le cas.
Vous pouvez avoir autant de balises que vous le souhaitez dans un document.
Les balises sont traitées dès qu’elles sont rencontrées.
J'espère que cela t'aides.
Certains estiment qu'il est préférable de combiner tous les scripts dans un seul bloc de script ou un seul fichier de script, de ne charger que le javascript réellement nécessaire et de le charger le plus tard possible pour ne pas ralentir le rendu du code HTML.
En dehors de cela, je suis sûr que l'utilisation d'un seul bloc de script se charge plus rapidement que d'utiliser plusieurs blocs de script, car ils doivent être évalués individuellement. Cependant, cette différence pourrait ne pas être reconnaissable.