Когда именно происходит загрузка onLoad - PullRequest
2 голосов
/ 21 февраля 2011

Меня особенно беспокоит событие onload для выбранных элементов DOM. Для примера предположим, что в моем DOM есть изображение.

Как мне показалось, я понял, что событие onload для этого изображения должно срабатывать, когда изображение выводится на экран, но недавно мне были предоставлены данные, чтобы предположить обратное. Итак, мой вопрос заключается в следующем:

Когда в порядке следующих событий происходит событие onload для изображения?

  1. Проверяется HTML, содержащий изображение
  2. Запрос на изображение
  3. Первый байт получен для изображения
  4. Последний байт получен
  5. Браузер проверяет заголовок ответа HTTP
  6. Изображение выводится на экран

Меня особенно интересует Firefox, но мне также было бы интересно узнать, как это влияет на Internet Explorer (в частности, IE8) и Chrome

Ответы [ 3 ]

4 голосов
/ 21 февраля 2011

Событие загрузки происходит после изображение было нарисовано на экране.

Демо: http://jsfiddle.net/e5hvr/

(Предупреждение блокирует поток в браузере, поэтому, если изображение еще не было нарисовано, вы не сможете его увидеть, пока предупреждение еще открыто.)

1 голос
/ 21 февраля 2011

По документам jQuery

Хотя JavaScript предоставляет событие загрузки для выполнения кода при отображении страницы, это событие не запускается, пока все ресурсы, такие как изображения, не будут иметьбыл полностью получен.

Итак, чтобы ответить на ваш вопрос, я бы сказал после всех перечисленных вами событий.

0 голосов
/ 24 февраля 2011

Я бы сказал, все, кроме 6. И ваши события, конечно, не в том порядке;Заголовки предшествуют данным.

...