DrunkMaster
@DrunkMaster

Порядок исполнения JS в браузере?

Из учебника, события при загрузке:
DOMContentLoaded – браузер полностью загрузил HTML и построил DOM-дерево.
load – браузер загрузил все ресурсы.

Далее:
Если в документе есть теги < script >, то браузер обязан их выполнить до того, как построит DOM.
Поэтому событие DOMContentLoaded ждёт загрузки и выполнения таких скриптов.


Так я хочу выполнить скрипт когда построено DOM-дерево и поэтому делаю document.onload а не document.ready, но выходит видя что на странице есть script браузер до дерева сначала выполнеят его, в скрипте написано onload т.е. "я жду дерева" браузер забивает на скрипт пока и начинает строить дерево опять и потом возвращается к скрипту выполняя то что нужно по onload, потом грузит картинки и стили, опять возвращается к скрипту и выполняет уже то, что указано в ready.
Я всё верно понял? Событий других на этапе загрузки кроме onload и ready нет?
  • Вопрос задан
  • 259 просмотров
Решения вопроса 1
@kulaeff
Front-end developer
Во-первых, в js нет такого события, как ready. Это событие предоставляет либа jQuery. В js есть document.DOMContentLoad и window.onload. Первое событие вызывается, когда DOM-дерево построено, второе - когда построено DOM-дерево и загружены все ресурсы. Отсюда вытекает, что DOMContentLoad вызывается всегда раньше, чем onload. В этом легко убедиться тут.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы