Логотип YeaHub

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

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

Тренажёр

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

Обучение

Навыки

Войти

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

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

© 2026 YeaHub

Документы

Медиа

Назад
Вопрос про HTML: async, defer

Чем отличаются async и defer при подключении скриптов?

Вопрос проверяет понимание различий между асинхронной и отложенной загрузкой JavaScript.

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

async и defer позволяют загружать скрипты без блокировки HTML, но ведут себя по-разному. async выполняет скрипт сразу после загрузки, независимо от состояния DOM. defer выполняет скрипт только после завершения парсинга HTML. Также defer сохраняет порядок выполнения скриптов, а async — нет.

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

Оба атрибута используются для оптимизации загрузки JavaScript, но подходят для разных задач.

Основное различие

async ориентирован на независимые скрипты, а defer — на скрипты, работающие с DOM.

Поведение async

  1. Скрипт загружается параллельно HTML

  2. Выполняется сразу после загрузки

  3. Может выполниться до завершения построения DOM

  4. Не гарантирует порядок выполнения

Поведение defer

  1. Скрипт загружается параллельно HTML

  2. Выполняется после завершения парсинга HTML

  3. DOM полностью доступен

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

Пример использования

<script src="vendor.js" defer></script>
<script src="app.js" defer></script>

vendor.js выполнится перед app.js, даже если загрузится позже.

Практические рекомендации

  • async — аналитика, трекеры, независимые скрипты

  • defer — основной код приложения, работа с DOM

Вывод

Выбор между async и defer зависит от того, нужен ли доступ к DOM и важен ли порядок выполнения скриптов.

Уровень

  • Рейтинг:

    5

  • Сложность:

    5

Навыки

  • HTML

    HTML

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

#async

#defer

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