Comment fonctionne exactement <script defer=“defer”> travail?

J'ai un peu de <script> éléments, et le code dans certains d'entre eux dépendent de code dans d'autres <script> éléments. J'ai vu le defer attribut peut s'avérer très pratique ici, car il permet de blocs de code pour le report de l'exécution.

Pour le tester j'ai exécuté ce sur Chrome: http://jsfiddle.net/xXZMN/.

<script defer="defer">alert(2);</script>
<script>alert(1)</script>
<script defer="defer">alert(3);</script>

Cependant, il avertit 2 - 1 - 3. Pourquoi n'est-il pas d'alerte 1 - 2 - 3?

  • Peut-être découvrez cet article. Et, comme toujours, c'est à dire a leur propre ce qui signifie quelque chose et a décidé de charger le script, mais le retard de l'exécution jusqu'à ce que le corps est chargé (généralement).
  • Merci, cependant la page de test a un résultat différent sur Chrome: websiteoptimization.com/speed/tweak/defer/test. La capture d'écran montre comment je pourrais l'attendre, tandis que google Chrome, il semble exécuter le report de la première.
  • Je pense que vous trouverez les IE définition de reporter les matchs de la W3C intention de reporter dans le DOM Niveau 1 spec.
  • Comme Alohci l'a déjà souligné, dans sa réponse, selon le Standard HTML defer est valide seulement lors de la spécification de src. Cela pourrait être une raison pourquoi votre exemple ne fonctionne pas comme prévu dans la plupart des navigateurs.
  • Histoire vraie! Essayez de jsfiddle.net/xXZMN/50 Testé dans Firefox24
  • Trouve ce schéma très utile pour comprendre reporter et les différences entre async et de reporter: growingwiththeweb.com/2014/02/async-vs-defer-attributes.html

InformationsquelleAutor pimvdb | 2011-03-09