47 votes

JavaScript dans <head> ou juste avant </body> ?

Je suis sur le point de lancer un nouveau projet web et j'ai l'intention de mettre mon JS-scripts dans la tête et, avant la fin de corps à l'aide du schéma suivant:

  1. Les Scripts qui sont essentiels pour le UX de la page passe dans la tête. Comme je l'ai ramassé en parcourant le web, les scripts dans la tête est chargé avant le chargement de la page, donc il serait judicieux de mettre les scripts qui sont essentiels à l'expérience utilisateur.

  2. Les Scripts qui ne sont pas essentiels pour le design et l'UX (Google Analytics, scripts etc.) de la page avant de l' </body>.

Est-ce une bonne approche?

Une autre approche serait de mettre tous les scripts dans l' <head> et ajouter de reporter les attributs de la non-scripts - cependant j'ai lu que les anciennes versions de FF ne ramasse pas de l'attribut defer.

31voto

Curt Points 42871

Je pense que beaucoup de développeurs exécutent javascript juste avant les </body> afin qu'il soit exécuté une fois que tous les éléments ont été rendus.

Cependant, si vous organisez votre code correctement, la position sur la page n'a pas d'importance.

Par exemple, lorsque vous utilisez jQuery, vous pouvez vous assurer que le code ne sera pas exécuté tant que la page et ses éléments ne seront pas entièrement restitués, en procédant comme suit:

 $(document).ready(function(){
   //Code here
});
 

Ensuite, la référence de script peut être placée dans la balise head .

13voto

Digbyswift Points 6130

Javascript doit être placé à la fin du document, afin de ne pas retarder le parallèle de chargement des éléments de la page. Cela ne nécessite alors que le js est écrit d'une manière spécifique, mais il permet d'améliorer la vitesse de chargement de la page.

Aussi, idéalement, vous pouvez hôte références comme ça sous un autre (sous -) domaine. Les références à jquery doit être signalé à google CA aussi.

Voir http://developer.yahoo.com/performance/rules.html pour plus d'info.

4voto

Conan Points 787

Je dirais que c'est parfaitement raisonnable. Comme vous l'avez dit, tant que vous ne déplacez pas les scripts essentiels (par exemple, jQuery, Modernizr, etc.) du <head> , vous ne devriez pas avoir de problèmes.

Déplacer les scripts non essentiels vers le bas de la page devrait vous aider à percevoir la vitesse de chargement (celle des scripts à minimiser / concaténer).

4voto

Nikoloff Points 1542

L'une des raisons pour lesquelles vous pourriez vouloir mettre les scripts avant de les est de savoir si ils manipuler le DOM sans interaction de l'utilisateur, de sorte que vous aurez besoin DOM pour être chargé dans l'ordre pour être manipulé. Une autre façon de le faire est d'ajouter un écouteur d'événement et d'exécuter les scripts lorsque la page est chargée, mais cela nécessitera un code supplémentaire, qui pourrait se compliquer si vous avez beaucoup de scripts, en particulier celles que vous n'avez pas écrit vous-même. De les mettre à la fin de la page aussi d'accélérer la vitesse de chargement de la page, si dans le cas des DOM manipuler les scripts que vous pourriez obtenir quelques pas-si-jolie les résultats de cette.

-1voto

Ed Heal Points 24309

Placez le code Javascript dans un fichier séparé et placez un lien vers celui-ci dans la partie principale du code HTML.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X