9
votes

Où placer les fonctions JavaScript: ? ? Ou, après ?

Je suis confus sur où placer les fonctions JavaScript:

Quand devraient-ils être mis dans la tête En ligne dans le corps Et, quand après la balise HTML de fermeture?

merci


3 commentaires

Dupliquer de Stackoverflow. com / questions / 196702 / ...


J'ai déjà vu cette question plusieurs fois, mais je ne me souviens jamais de voir "après " comme option.


Je le place juste après la balise de fermeture


3 Réponses :


13
votes

Les règles sont rapides et lâches à ce sujet, il n'y a pas de mauvais ou de mauvaise manière meilleure et moins meilleure. (bien après le est mauvais)

En règle générale, JavaScript dans la tête du document peut bloquer le rendu de la page jusqu'à ce que le fichier soit chargé dans certains navigateurs * toux * Ie * toux *. Cela est dû à une limite de connexions simultanées. Donc, certaines personnes les mettent avant la clôture html tag. Vous pouvez utiliser une bibliothèque pour charger asynchroneusement le JavaScript afin d'éviter ce blocage.

Si vous utilisez une bibliothèque ou que vous vérifiez que le DOM doit être chargé avant d'exécuter du code, il n'y a vraiment aucun problème de l'endroit où il est placé. Cependant, si vous ne faites pas cela, il est probablement préférable de le mettre à la fin.


3 commentaires

Je ne sais pas qui vous a baissé, mais j'ai suscité de l'annuler parce que je suis d'accord avec vous en général


merci@soniic ... avec une question aussi générique que pouvez-vous ne pas répondre généralement ...


Donc, pour résumer les 3 réponses jusqu'à présent: il est correct de mettre JavaScript à la tête et / à la tête et dans le corps et / corps. J'ai eu une partie de la mienne après / html. Yikes.



1
votes

JavaScript peut toujours être placé en toute sécurité dans la tête pour rendre la fonctionnalité disponible sur la page entière. Notez que cela peut bloquer le chargement du reste du document, de sorte que si vous chargez de très grand ou javascript externe, vous voudrez peut-être les charger en ligne vers la fin du corps.

JavaScript placé en ligne sera disponible lorsqu'il sera exécuté. Cela vous permet de charger de manière conditionnelle JS lorsque des éléments de page sont chargés.

JavaScript doit toujours être placé dans le ou , jamais après .


0 commentaires

1
votes

Je suis d'accord, jamais vu (ni je n'ai pu recommander) après HTML. Aussi, comme indiqué, le blocage est la préoccupation. Ce que je vais souvent, c'est une référence de script dans la tête à Yepnope (un chargeur ASYNC JS et un bit TID TID (maintenant inclus avec modernizr )) et un minuscule bloc de JS en ligne à l'extrémité de la balise corporelle qui charge un fichier JS bootstrap.

Dans ce fichier, j'utilise une autre demande Yepnope pour charger d'autres actifs indispensables de manière asynchrone et lancer des méthodes d'initialisation.

J'ai aussi pris pour mettre mon code Google Analytics dans un bloc de Yepnope final, de sorte que c'est la dernière chose à charger, même après les bottes de l'application JS.


0 commentaires