Quelle est la différence entre DOMContentLoaded
et les load
événements?
javascript
browser
Viktor
la source
la source
Réponses:
Depuis le Mozilla Developer Center :
la source
L'
DOMContentLoaded
événement se déclenchera dès que la hiérarchie DOM sera entièrement construite, l'load
événement le fera lorsque toutes les images et sous-cadres auront fini de se charger.DOMContentLoaded
fonctionnera sur la plupart des navigateurs modernes,mais pas sur IE,y compris IE9 et supérieur. Il existe des solutions de contournement pour imiter cet événement sur les anciennes versions d'IE, comme celles utilisées dans la bibliothèque jQuery, elles attachent l' événement spécifique d'IEonreadystatechange
.la source
Voyez vous-même la différence:
DEMO
Depuis Microsoft IE
De Mozilla Developer Network
la source
DOMContentLoaded
ce que la garantie que tous les scripts (y compris defer / async) ont été chargés? Rien n'est dit ici sur les scripts: developer.mozilla.org/en-US/docs/Web/Events/DOMContentLoadedDOMContentLoaded
==window.onDomReady()
Load
==window.onLoad()
Voir: http://learn.jquery.com/using-jquery-core/document-ready/
la source
domContentLoaded : marque le moment où le DOM est prêt et qu'aucune feuille de style ne bloque l'exécution de JavaScript - ce qui signifie que nous pouvons maintenant (potentiellement) construire l'arborescence de rendu. De nombreux frameworks JavaScript attendent cet événement avant de commencer à exécuter leur propre logique. Pour cette raison, le navigateur capture les horodatages EventStart et EventEnd pour nous permettre de suivre la durée de cette exécution.
loadEvent : comme étape finale de chaque chargement de page, le navigateur déclenche un événement «onload» qui peut déclencher une logique d'application supplémentaire.
la source
la source
Voici un code qui fonctionne pour nous. Nous avons constaté que MSIE était
DomContentLoaded
aléatoire, il semble y avoir un certain délai lorsqu'aucune ressource supplémentaire n'est mise en cache (jusqu'à 300 ms en fonction de la journalisation de notre console), et il se déclenche trop rapidement quand ils sont mis en cache. Nous avons donc eu recours à un repli pour MISE. Vous souhaitez également déclencher ladoStuff()
fonction, qu'elle seDomContentLoaded
déclenche avant ou après vos fichiers JS externes.la source