Back to questions
Middle+
2
Что может блокировать первый рендеринг в браузере после получения HTML? Что можно сделать с синхронной загрузкой JS и CSS?
Companies where asked
Mayflower
Answer from AI
sobes.tech AI
Первый рендеринг в браузере может блокироваться из-за синхронной загрузки и выполнения JavaScript и CSS.
Что блокирует рендеринг:
- CSS: браузер должен загрузить и обработать все CSS-файлы перед тем, как отобразить страницу, чтобы избежать «мигания» без стилей (FOUC).
- JavaScript: скрипты, подключённые без атрибутов
asyncилиdefer, блокируют парсинг HTML, так как браузер должен загрузить и выполнить их сразу.
Что можно сделать:
-
Для CSS:
- Минимизировать и объединять файлы.
- Использовать
mediaатрибуты для отложенной загрузки стилей, не критичных для первого экрана. - Встраивать критический CSS inline в
<head>, чтобы ускорить первый рендер.
-
Для JavaScript:
- Добавлять атрибуты
asyncилиdeferк тегам<script>, чтобы загрузка и выполнение не блокировали парсинг HTML. - Переносить скрипты в конец
<body>. - Делать ленивую загрузку скриптов, которые не нужны сразу.
- Добавлять атрибуты
Пример использования defer:
<script src="script.js" defer></script>
Это позволит браузеру продолжить парсинг HTML, а скрипт выполнится после построения DOM.