При запуске веб-страницы, HTML-документ живет в 3х стадиях (событиях), каждую из которых можно обработать.
DOMContentLoaded — браузер загрузил HTML и построил DOM-дерево.
load — браузер загрузил все ресурсы (стили, шрифты и т.д.).
beforeunload и unload — закрытие страницы.
DOMContentLoaded
Происходит на document когда все DOM-элементы разметки уже созданы, к ним можно получить доступ, вешать обработчики событий, создавать динамические элементы.
В момент возникновения этого события могут быть не загружены шрифты, изображения, подключаемые файлы стилей.
Событие срабатывает на window, когда загружается вся страница, включая ресурсы на ней — стили, картинки и т.д.
Используется редко, ибо нет нужды ждать загрузку всех ресурсов.
beforeunload
Событие срабатывает на window. Используется для проверки сохранения введенных пользователем данных и действительно ли он хочет покинуть страницу.
Если посетитель инициировал переход на другую страницу или нажал закрыть окно, то обработчик beforeunload может приостановить процесс и спросить подтверждение. Для этого ему нужно вернуть строку, которую браузеры покажут посетителю, спрашивая – нужно ли переходить.
unload
Когда пользователь уходит со страницы или закрывает окно, на window срабатывает событие unload.