Процесс загрузки HTML-документа, условно, состоит из трёх стадий:
- DOMContentLoaded – браузер полностью загрузил HTML, и построил DOM-дерево.
- load – браузер загрузил все ресурсы.
- beforeunload/unload – уход со страницы.
Все эти стадии очень важны. На каждую можно повесить обработчик, чтобы совершить полезные действия:
- DOMContentLoaded – означает, что все DOM-элементы разметки уже созданы, можно их искать, вешать обработчики, создавать интерфейс, но при этом, возможно, ещё не догрузились какие-то картинки или стили.
- load – страница и все ресурсы загружены, используется редко, обычно нет нужды ждать этого момента.
- beforeunload/unload – можно проверить, сохранил ли посетитель изменения, уточнить, действительно ли он хочет покинуть страницу.