Вопрос проверяет понимание того, как синхронные скрипты влияют на скорость загрузки и отображения страницы.
Синхронные скрипты блокируют парсинг HTML до момента их загрузки и выполнения. Пока скрипт не выполнится, браузер не может продолжить построение DOM. Это замедляет первый рендер страницы и может вызывать задержки отображения контента. Чем больше таких скриптов, тем хуже воспринимаемая производительность.
По умолчанию все скрипты в HTML загружаются синхронно, если не указаны специальные атрибуты.
Синхронная загрузка означает, что браузер:
останавливает парсинг HTML
загружает JavaScript-файл
выполняет код
только после этого продолжает обработку HTML
Остановка парсинга DOM
Пока скрипт не выполнен, DOM-дерево не может быть построено полностью.
Блокировка render tree
Без DOM и CSSOM браузер не может сформировать render tree.
Задержка первого отображения
Пользователь дольше видит пустую страницу или частично загруженный контент.
<script src="heavy.js"></script>
<p>Контент страницы</p>
Текст внутри <p> не будет обработан, пока heavy.js не загрузится и не выполнится.
Использовать defer для основного кода
Выносить критичные скрипты в конец HTML
Минимизировать и объединять JavaScript-файлы
Синхронные скрипты сильно влияют на скорость рендеринга и должны использоваться только там, где это действительно необходимо.