Puisqu'une seule page web peut contenir beaucoup de ressources externes: javascript externe, css externe, images, applets, flash, etc., ma sagesse conventionnelle me dit habituellement que l'événement window.onload est déclenché quand toutes les ressources liées sont terminées le téléchargement (bien que les ressources externes soient généralement téléchargées dans plusieurs threads ou processus par l'implémentation du navigateur). Le cas habituel peut fonctionner la plupart du temps. Mais ... et si la séquence de chargement n'est pas ce que je prends pour acquis, un bug javascript peut se glisser quelque part et parfois. Après avoir fait une recherche, j'ai trouvé que ce n'est pas le cas ce que je pense d'habitude. De cette page: https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-5214317.html, il semble que les images ne soient pas chargées lors du déclenchement de l'événement onload. Mais d'ici window.onload vs <body onload=""/>, il me semble que les images sont chargées quand onload est déclenché. Il y a plus de confusion pour moi à partir de ce lien http://forums.mozillazine.org/viewtopic.php?f=25&t=413504&start=0&st=0&sk=t&sd=a. Donc, ma première partie de la question est: Est-ce que toutes les ressources sont vraiment chargées quand window.onload est déclenché?Quelles ressources externes sont chargées lorsque l'événement window.onload est déclenché et quel est l'ordre de chargement des ressources?
Une autre partie étroitement liée à la question est: Quelle est l'ordre de chargement des ressources avant le lancement de window.onload? Je sais pour les ressources internes telles que javascript interne ou CSS, l'ordre de chargement est du haut de la page vers le bas (sauf dans IE, utilisez le script différé comme indiqué ici Getting notified when the page DOM has loaded (but before window.onload)). Mais qu'en est-il des ressources externes javascript et css? Par exemple, si je vous écris ma page comme ceci:
<external stylesheet...>
<external javascript #1...>
<external javascript #2...>
<script>
.....
window.onload=....
</script>
prenant alors une fonction « javascript externe # 2 » appelle une fonction « javascript externe # 1 », puis-je être sûr qu'il fonctionne toujours? Aussi, si window.onload appelle une fonction dans "javascript externe # 1" fonctionne aussi comme prévu?
Vous pouvez dire que la séquence de chargement des ressources et quand déclencher l'événement window.onload dépend de l'implémentation du navigateur, comme indiqué ici What is the event precedence in JavaScript?. Mais je me demande toujours s'il y a une spécification ou une convention dans le public. Pourriez-vous s'il vous plaît me référer à une ressource ou me dire les faits pour effacer ma confusion?