2008-09-27 8 views
86

J'ai récemment lu le manifeste Yahoo Best Practices for Speeding Up Your Web Site. Ils recommandent de mettre l'inclusion JavaScript au bas du code HTML quand nous le pouvons.JavaScript discret: <script> en haut ou en bas du code HTML?

Mais où exactement et quand?

Devrions-nous le mettre avant la fermeture </html> ou après? Et surtout, quand devrions-nous encore le mettre dans la section <head>?

+1

duplication possible de [Où est le meilleur endroit pour mettre

3

Si vous le placez en bas, il se charge en dernier, accélérant ainsi la vitesse à laquelle l'utilisateur peut voir la page. Il doit être avant la finale </html>, mais sinon il ne fera pas partie du DOM.

Si le code est nécessaire immédiatement, alors mettez-le dans la tête. Il est préférable de placer les widgets de blog en bas de manière à ce que, s'ils ne se chargent pas, cela n'affecte pas la convivialité de la page.

6

Non, il ne devrait pas être après le </html> car cela serait invalide. Le meilleur endroit pour mettre des scripts est juste avant le </body>

C'est essentiellement parce que la plupart des navigateurs arrêtent de rendre la page pendant qu'ils évaluent le script que vous fournissez. Il est donc OK de mettre du code non bloquant n'importe où dans la page (je pense principalement aux choses qui attachent des fonctions à l'événement onLoad, puisque la liaison d'événements est si rapide qu'elle est effectivement gratuite). Un gros tueur ici est au début de la page en mettant un script de serveur publicitaire, ce qui peut empêcher le chargement de la page avant que les publicités soient complètement téléchargées, rendant votre page de chargement fois ballon

+0

Vous savez, si vous êtes vraiment concerné par la vitesse alors il n'y aura pas ou - les balises fermantes pour ces types d'élément sont optionnelles. Mettez le

30

Il n'a jamais ainsi coupé et sec - Yahoo recommande de mettre les scripts juste avant la balise de fermeture </body>, qui va créer l'illusion que la page se charge plus rapidement sur un cache vide (puisque les scripts ne bloque pas télécharger le reste du document). Cependant, si vous avez du code que vous voulez exécuter lors du chargement de la page, il ne commencera à s'exécuter qu'après le chargement complet de la page. Si vous placez les scripts dans la balise <head>, ils commenceront à s'exécuter avant. Ainsi, dans un cache amorcé, la page semblerait se charger plus rapidement.

De plus, le privilège de placer des scripts au bas de la page n'est pas toujours disponible. Si vous devez inclure dans vos vues des scripts en ligne qui dépendent d'une bibliothèque ou d'un autre code JavaScript chargé auparavant, vous devez charger ces dépendances dans la balise <head>.

Dans l'ensemble, les recommandations de Yahoo sont intéressantes mais pas toujours applicables et devraient être considérées au cas par cas.

+1

Si vous avez discret javscript, vous n'aurez pas d'extraits en ligne, la question spécifiquement mentionnée discrète. –

+1

en ligne '

Questions connexes