Эти два события отличаются моментом срабатывания в процессе загрузки страницы, и правильный выбор влияет как на производительность, так и на функциональность.
Событие DOMContentLoaded срабатывает, как только браузер полностью разобрал HTML и построил DOM-дерево — не дожидаясь загрузки внешних ресурсов: изображений, стилей или iframe'ов.
document.addEventListener('DOMContentLoaded', () => {
// DOM готов, безопасно обращаться к элементам
});
Событие window.onload срабатывает только после полной загрузки всех ресурсов страницы: изображений, стилей, шрифтов и iframe'ов.
window.addEventListener('load', () => {
// Всё, включая изображения, полностью загружено
});
DOMContentLoaded, поэтому без необходимости его лучше не использоватьDOMContentLoaded для навешивания обработчиков событий, инициализации UI-компонентов или работы с DOM — это покрывает большинство случаевwindow.onload только когда тебе явно нужны полностью загруженные внешние ресурсы — например, для расчёта размеров элементов разметки на основе размеров изображенийПо умолчанию используй DOMContentLoaded — это даёт лучшую производительность. Переходи на window.onload только когда твоя логика действительно зависит от полностью загруженных внешних ресурсов.
Событие DOMContentLoaded срабатывает до завершения парсинга HTML, позволяя тебе сразу же взаимодействовать с DOM через JavaScript.
Новый — ещё не проверен сообществом
Вы