В чем разница между DomContentLoaded и load

«В чем разница между DomContentLoaded и load» — вопрос из категории Асинхронность, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

DOMContentLoaded и load — это события жизненного цикла загрузки страницы, но они срабатывают в разные моменты:

  1. DOMContentLoaded
    Срабатывает, когда браузер полностью загрузил и разобрал HTML-документ, построил DOM-дерево, но ещё не загрузил внешние ресурсы (картинки, стили, скрипты и т.д.).
    Подходит для инициализации скриптов, которым не нужно ждать загрузки всех ресурсов.

  2. Load
    Срабатывает, когда загружены все ресурсы страницы (изображения, стили, скрипты и т.д.).
    Используется, когда нужно работать с размерами изображений или другими зависимостями от полной загрузки.

// Пример использования
document.addEventListener('DOMContentLoaded', () => {
  console.log('DOM готов, но картинки ещё нет');
});

window.addEventListener('load', () => {
  console.log('Вся страница загружена');
});