Où dois-je placer les balises <script> dans les balises HTML ?

Lorsque vous incorporez du JavaScript dans un document HTML, quel est l'endroit approprié pour placer les balises " script " et le JavaScript inclus ? Je crois me souvenir qu'il ne faut pas les placer dans la section " head ", mais qu'il ne faut pas non plus les placer au début de la section " body ", car le JavaScript devra être analysé avant que la page ne soit complètement rendue (ou quelque chose comme ça). Il semble donc que la fin de la section "body" soit l'endroit logique pour les balises "script".

Alors, où est le bon endroit pour mettre les balises <script> ?

(Cette question fait référence à [cette question][1], dans laquelle il est suggéré de déplacer les appels de fonctions JavaScript des balises <a> vers les balises <script>. J'utilise spécifiquement jQuery, mais des réponses plus générales sont également appropriées).

[1] : https://stackoverflow.com/questions/436154/why-does-the-call-to-this-jquery-function-fail-in-firefox

Juste avant la balise de fermeture du corps, comme indiqué sur la page

http://developer.yahoo.com/performance/rules.html#js_bottom

Placer les scripts en bas de page

Le problème causé par les scripts est qu'ils bloquent les téléchargements parallèles. La spécification HTTP/1.1 suggère que les navigateurs ne téléchargent pas plus de deux composants en parallèle par nom d'hôte. Si vous servez vos images à partir de plusieurs noms d'hôtes, vous pouvez faire en sorte que plus de deux téléchargements aient lieu en parallèle. Cependant, pendant le téléchargement d'un script, le navigateur ne lancera pas d'autres téléchargements, même sur des noms d'hôtes différents.

Commentaires (7)

Si vous utilisez JQuery, placez le javascript là où vous le trouvez le mieux et utilisez $(document).ready() pour vous assurer que les choses sont correctement chargées avant d'exécuter toute fonction.

Remarque : j'aime que toutes mes balises de script soient placées dans la section ``, car cela semble être l'endroit le plus propre.

Commentaires (5)

La réponse conventionnelle (et largement acceptée) est "en bas", car alors le DOM entier aura été chargé avant que quoi que ce soit puisse commencer à s'exécuter.

Il y a des dissidents, pour diverses raisons, à commencer par la pratique disponible de commencer intentionnellement l'exécution avec un événement onload de la page.

Commentaires (0)