Логотип YeaHub

База вопросов

Собеседования

Тренажёр

База ресурсов

Обучение

Навыки

Задачи

Войти

Выбери, каким будет IT завтра — вместе c нами!

YeaHub — это полностью открытый проект, призванный объединить и улучшить IT-сферу. Наш исходный код доступен для просмотра на GitHub. Дизайн проекта также открыт для ознакомления в Figma.

© 2026 YeaHub

AI info

Карта сайта

Документы

Медиа

Назад
Вопрос про JavaScript: critical rendering path, async loading, resource hint, preload scanner, DOMContentLoaded

Почему изображения не блокируют построение страницы?

Вопрос проверяет понимание механизма асинхронной загрузки ресурсов в браузере и его влияния на критический путь рендеринга.

Короткий ответ

Изображения не блокируют построение DOM и CSSOM, так как они загружаются асинхронно. Браузер продолжает парсить HTML и строить DOM, не дожидаясь загрузки изображений. Это позволяет странице отобразить контент быстрее, а изображения подгружаются позже, не задерживая интерактивность.

Длинный ответ

Как браузер обрабатывает изображения

Когда браузер встречает тег <img> в HTML, он не останавливает парсинг документа. Вместо этого он отправляет запрос на загрузку изображения асинхронно, а сам продолжает строить DOM. Это ключевое отличие от блокирующих ресурсов, таких как синхронные скрипты или CSS-файлы, которые могут задерживать рендеринг.

Роль предзагрузчика (preload scanner)

Современные браузеры используют предзагрузчик, который сканирует HTML ещё до того, как основной парсер построит DOM. Он находит ссылки на изображения, скрипты и стили и начинает их загрузку заранее. Это ускоряет общую загрузку страницы, так как запросы отправляются параллельно с парсингом.

Влияние на события страницы

Изображения не блокируют событие DOMContentLoaded, которое срабатывает, когда DOM полностью построен. Однако они могут задерживать событие load, которое ждёт загрузки всех ресурсов, включая изображения. Это важно для аналитики и интерактивности.

Пример кода

<!DOCTYPE html>
<html>
<head>
  <title>Пример</title>
</head>
<body>
  <h1>Контент отображается сразу</h1>
  <img src="large-image.jpg" alt="Большое изображение">
  <script>
    document.addEventListener('DOMContentLoaded', () => {
      console.log('DOM готов, изображение ещё может загружаться');
    });
  </script>
</body>
</html>

В этом примере заголовок появится сразу, а изображение будет загружаться асинхронно. Событие DOMContentLoaded сработает до полной загрузки изображения.

Вывод

Понимание асинхронной загрузки изображений помогает оптимизировать производительность страницы, особенно для контентных сайтов. Используйте атрибуты loading="lazy" для отложенной загрузки изображений вне экрана, чтобы ускорить начальный рендеринг.

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию

Уровень

  • Рейтинг:

    4

  • Сложность:

    4

Навыки

  • JavaScript

    JavaScript

  • HTML

    HTML

Ключевые слова

#critical rendering path

#async loading

#resource hint

#preload scanner

#DOMContentLoaded

Подпишись на React Developer в телеграм

Frontend developer

tech
tech
tech
tech
tech
tech
tech
tech
tech

Ментор по Frontend

Полное сопровождение до оффера — без дорогих курсов, с оплатой после трудоустройства

Записаться на консультацию