PassFront
  1. PassFront
  2. База знаний
  3. Продвинутые темы

Что такое Defer?

Продвинутые темы

`defer` — атрибут тега <script>, который загружает скрипт параллельно с парсингом HTML и выполняет его после построения DOM, сохраняя порядок скриптов.

Поведение

  • Скрипт скачивается параллельно с парсингом (не блокирует его).
  • Выполняется после построения DOM, перед DOMContentLoaded.
  • Порядок сохраняется — скрипты выполняются в порядке объявления.
  • Работает только для внешних скриптов (src).
<script defer src="app.js"></script>
<script defer src="utils.js"></script>

defer против async и обычного скрипта

  • Обычный — блокирует парсинг HTML на время загрузки и выполнения.
  • async — параллельная загрузка, выполнение сразу по загрузке, порядок не гарантирован.
  • defer — параллельная загрузка, выполнение после DOM, порядок сохраняется.

Когда использовать

Для скриптов, зависящих от DOM или друг от друга — defer. Для независимых (аналитика) — async.

Коротко для собеседования

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

Другие вопросы раздела