Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про JavaScript: render, blocking

Как влияют скрипты на блокировку рендеринга?

Вопрос проверяет понимание того, как JavaScript влияет на парсинг HTML, построение DOM и скорость первой отрисовки страницы.

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

Скрипты могут блокировать рендеринг, потому что браузер должен остановить парсинг HTML, загрузить и выполнить JavaScript. Это нужно, так как скрипт может изменить DOM или CSS. Пока синхронный скрипт не выполнен, браузер не продолжает строить DOM и не может корректно рендерить страницу. Атрибуты defer и async позволяют уменьшить или убрать эту блокировку.

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

JavaScript напрямую участвует в формировании страницы, поэтому браузер относится к нему как к потенциально опасному для рендера ресурсу.

Определение

Определение: Render-blocking script — это скрипт, который останавливает парсинг HTML и задерживает отрисовку страницы до момента своей загрузки и выполнения.

Почему браузер блокирует парсинг

Браузер не знает заранее, что сделает скрипт:

  • может изменить DOM (document.write, appendChild)

  • может читать стили и размеры элементов

  • может добавить новые стили или скрипты

Из-за этого браузер обязан выполнить скрипт строго в том месте, где он встречается.

Поведение обычного <script>

  1. Парсинг HTML останавливается.

  2. Скрипт загружается (если внешний).

  3. Скрипт выполняется.

  4. Парсинг HTML продолжается.

Как defer и async меняют ситуацию

  • defer

    • HTML парсится без остановки.

    • Скрипт выполняется после построения DOM.

    • Порядок выполнения сохраняется.

  • async

    • HTML парсится без остановки.

    • Скрипт выполняется сразу после загрузки.

    • Порядок выполнения не гарантирован.

<script src="app.js" defer></script>
<script src="analytics.js" async></script>

Практический эффект

  • Синхронные скрипты → задержка FCP, “белый экран”.

  • defer → безопасный вариант для большинства приложений.

  • async → хорошо для независимых скриптов (метрики, реклама).

Вывод: скрипты блокируют рендеринг, потому что браузер обязан выполнить их до продолжения парсинга. Использование defer и async — ключ к ускорению загрузки страницы.

Уровень

  • Рейтинг:

    5

  • Сложность:

    7

Навыки

  • JavaScript

    JavaScript

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

#render

#blocking

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