À quel point est-il mal de placer la balise de script après la balise de fermeture du corps ( </body>
). ?
<html>
....
<body>
....
</body>
<script type="text/javascript" src="theJs.js"></script>
</html>
javascript
html
DanC
la source
la source
Réponses:
Il ne sera pas validé en dehors des balises
<body>
ou<head>
. Cela ne fera pas non plus de différence - à moins que vous ne fassiez des manipulations DOM qui pourraient casser IE avant que l'élément de corps ne soit complètement chargé - pour le mettre juste avant la fermeture</body>
.la source
<script src="..." defer>
, qui fonctionne dans tous les principaux navigateurs (mais avec un bogue potentiellement cassant dans IE9 et inférieur).Oui. Seuls les commentaires et la balise de fin de l'élément html sont autorisés après la balise de fin du corps.
Les navigateurs peuvent effectuer une récupération d'erreur, mais vous ne devez jamais en dépendre.
la source
Comme l'a dit Andy , le document ne sera pas valide, mais néanmoins le script sera toujours interprété. Voir l' extrait de WebKit par exemple:
la source
IE ne permet plus cela (depuis la version 10, je crois) et ignorera ces scripts. FF et Chrome les tolèrent toujours, mais il y a des chances qu'un jour ils abandonnent cela comme non standard.
la source
Insérez procéduralement le "script d'élément" après "le corps de l'élément" est "erreur d'analyse" par le processus recommandé par le W3C . Dans "Tree Construction", créez une erreur et exécutez "tokenize again" pour traiter ce contenu. C'est donc comme une étape supplémentaire. Ce n'est qu'alors que l'on peut exécuter "Script Execution" - voir processus de schéma .
Techniquement, par navigateur, c'est un processus interne, comment ils le marquent et l'optimisent.
J'espère avoir aidé quelqu'un.
la source
Oui. Mais si vous ajoutez le code à l'extérieur, ce ne sera probablement pas la fin du monde car la plupart des navigateurs le corrigeront, mais c'est toujours une mauvaise pratique d'y entrer.
la source
Google le recommande en fait en ce qui concerne «l'optimisation CSS». Ils recommandent d'intégrer les styles critiques au-dessus du pli et de reporter le reste (fichier css).
Exemple:
Voir: https://developers.google.com/speed/docs/insights/OptimizeCSSDelivery
la source
body
élément. Cet article Google ne conseille à personne de faire une telle chose.Les navigateurs modernes prendront des balises de script dans le corps comme suit:
Fondamentalement, cela signifie que le script sera chargé une fois la page terminée, ce qui peut être utile dans certains cas (notamment la manipulation DOM). Cependant, je vous recommande fortement de prendre le même script et de le mettre dans la balise head avec "defer", car cela donnera le même effet.
la source
script
balises avaient unevent
attribut qui pourrait être défini pour déterminer quand analyser le script. Vous devez doncevent="load" event="DOMContentLoaded"
exécuter le script après la création du DOM ouevent="beforeunload"
sur l'beforeunload
événement window . Exemple,<script src="scripts/main.js" event="DOMContentLoaded"></script>
.