Так как одна веб-страница может содержать много внешних ресурсов: внешний javascript, внешний css, изображения, апплеты, flash и т. Д., Обычно я придерживаюсь мнения, что событие window.onload вызывается, когда все связанные ресурсы завершена загрузка (хотя внешние ресурсы обычно загружаются в несколько потоков или процессов реализацией браузера). Обычный случай может работать в большинстве случаев. Но ... что если последовательность загрузки не та, которую я воспринимаю как должное, какая-то ошибка в JavaScript может появиться где-то и когда-нибудь.
После некоторого поиска я обнаружил, что это не тот случай, о котором я обычно думаю. На этой странице: https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-5214317.html, кажется, что изображения не загружаются при запуске события onload. Но отсюда window.onload vs , мне кажется, изображения загружаются при срабатывании onload. Для меня это еще больше путаницы по этой ссылке http://forums.mozillazine.org/viewtopic.php?f=25&t=413504&start=0&st=0&sk=t&sd=a.
Итак, моя первая часть вопроса: все ли ресурсы действительно загружены при запуске window.onload?
Другая тесно связанная часть вопроса: каков порядок загрузки ресурсов до запуска window.onload? Я знаю, что для внутренних ресурсов, таких как внутренний javascript или css, порядок загрузки находится сверху вниз страницы (если только в IE не используется отложенный скрипт, как здесь сказано Получение уведомлений о загрузке DOM страницы (но до window.onload) ).
Но как насчет внешних ресурсов javascript и css? Например, если я напишу свою страницу так:
<external stylesheet...>
<external javascript #1...>
<external javascript #2...>
<script>
.....
window.onload=....
</script>
Тогда, предполагая, что функция во "external javascript # 2" вызывает функцию во "external javascript # 1", могу ли я быть уверен, что она ВСЕГДА работает? Также, если window.onload вызывает функцию из "внешнего javascript # 1", она также работает как ожидалось?
Вы можете сказать последовательность загрузки ресурса и время запуска события window.onload зависит от реализации браузера, как сказано здесь Каков приоритет события в JavaScript? . Но мне все еще интересно, есть ли спецификация или соглашение в публике. Не могли бы вы отослать меня к ресурсу или рассказать факты, чтобы устранить путаницу?