Middle+
Wat kan de eerste rendering in de browser blokkeren nadat de HTML is ontvangen? Wat kan er gedaan worden met synchrone loading van JS en CSS?
sobes.tech AI
Antwoord van 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.