Полезны ли события загрузки web-страницы
Сэм Торогуд из Google опубликовал статью про события загрузки в Web — "Understanding Load Events on the Web".
Во время загрузки страницы генерируются два события: load
, DOMContentLoaded
. Сэм пишет про то, что без них можно легко обойтись. Если надо запустить какой-нибудь код после загрузки страницы, то обработчик события load
не самое лучшее для этого место. Страница может быть полностью интерактивна, но она может всё ещё ждать загрузку какого-нибудь неважного ресурса (фонового изображения, скрипта аналитики и т.п.)
Для обработки события DOMContentLoaded
необходимо всегда выполнять небольшой реверанс с проверкой document.readyState
. Если необходимо выполнить код скрипта после того, как будет доступен DOM, проще пометить этот скрипт с помощью defer
. Единственное место, где нельзя обойтись без DOMContentLoaded
, — код библиотек, так как такой код не знает был ли он загружен с помощью defer
или async
.