И последнее, CSS интерпретируется сверху вниз; независимо от того, как они загружены, браузер будет интерпретировать правила, начиная сверху и опускаясь вниз.

льку одна веб-страница может содержать множество внешних ресурсов: внешний 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 <body onload = "" />Мне кажется, изображения загружаются при срабатывании 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?, Но мне все еще интересно, есть ли спецификация или соглашение в публике. Не могли бы вы отослать меня к ресурсу или рассказать факты, чтобы устранить путаницу?

Ответы на вопрос(1)

Cuzillion, Он был написан Стивом Соудерсом (Steve Souders) из команды разработчиков Yahoo, чтобы оценить именно эти вещи.

Это сводится к следующему: браузеры загружают сценарии в том порядке, в котором они встречаются в документе, и вся остальная загрузка останавливается во время загрузки каждого сценария. Другие ресурсы (css / images) загружаются асинхронно, и вы не можете быть уверены, когда они завершатся.

Событие onload срабатывает, когда документ и его ресурсы script / style / image загружены, но вы, вероятно, не хотите ждать изображений, если вы делаете какой-либо JavaScript при загрузке страницы. Вместо этого используйте что-то вроде «готового» события jQuery или запустите собственное событие «DOMReady», поместив тег script в конце тела:

<body>
    <!-- your page contents here -->
    <script type="text/javascript">
        // DOM is ready, do scripty stuff now
        DOMReady();
    </script>
</body>

Ваш ответ на вопрос