Maison > Article > interface Web > Événements et séquence déclenchés lors du chargement de la page
Une fois la page chargée, elle peut être grossièrement divisée en les étapes suivantes :
Commencez à analyser la structure du document HTML
Chargement de feuilles de style externes et de scripts JavaScript
Analyse et exécution de scripts JavaScript
Rendu de l'arborescence DOM terminé
Chargement de ressources externes inachevées (telles que des images)
Page chargée avec succès
Alors, qu'est-ce qui a été déclenché dans tout le processusQu'en est-il des événements couramment utilisés ?
readyState l'attribut décrit l'état de chargement du document.readyState continuera à changer pendant tout le processus de chargement, et chaque changement déclenchera le. événement readystatechange.
readyState a le statut suivant :
Loading / Loading document
est toujours en cours de chargement.
Interactif / Le chargement du document interactif est terminé et le document a été analysé, mais les sous-ressources telles que les images, les feuilles de style et les cadres sont toujours en cours de chargement.
Le document T complet/complet et toutes les sous-ressources ont été chargées. Le statut indique que l'événement load
est sur le point d'être déclenché.
Par exemple, s'il correspond à interactif à l'étape 2 et à terminer après l'étape 5, l'événement readystatechange sera déclenché.
PS : readyState et XMLHttpRequest.readyState lors du chargement de documents, d'images, etc. sont différents. Faites attention à la distinction entre
L'événement DOMContentLoaded est déclenché lorsque le rendu de l'arborescence DOM est terminé et des ressources externes peuvent encore être en cours de chargement à ce moment-là. L'événement ready dans jquery a le même effet
Lorsque toutes les ressources sont chargées, l'événement de chargement de la fenêtre sera déclenché.
L'événement de chargement de document ne peut pas être déclenché, mais il existe cet événement sur MDN ? Demandez à Dieu de vous guider ! ! !
<h1>测试页面加载时,事件触发次序</h1> <img src="http://c.hiphotos.baidu.com/image/pic/item/09fa513d269759eea79bc50abbfb43166c22df2c.jpg" alt=""> <h1>测试页面加载时,事件触发次序</h1> <img src="http://h.hiphotos.baidu.com/image/pic/item/279759ee3d6d55fb75ed26e764224f4a21a4ddcc.jpg" alt=""> <h1>测试页面加载时,事件触发次序</h1> <script type="text/javascript"> console.log('resolve body JavaScript'); window.addEventListener('load',function(){ console.log('window load'); }) document.addEventListener('readystatechange',function(){ console.log('document ' + document.readyState); }) document.addEventListener('DOMContentLoaded',function(){ console.log('document DOMContentLoaded'); }) //document 没有load事件?? document.addEventListener('load',function(){ console.log('document load'); }) </script>
La sortie du journal dans Chrome est la suivante :
résoudre le corps JavaScript --> - > document DOMContentLoaded --> document terminé --> chargement de la fenêtre
Exactement comme prévu. Par conséquent, les scripts qui nécessitent uniquement que la structure du document soit chargée avant de pouvoir être exécutés peuvent surveiller DOMContentLoaded ; les scripts qui nécessitent que tout le contenu soit chargé avant de pouvoir être exécutés doivent surveiller window.onload ou document.readyState === 'complete'.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!