Back to questions
Middle+
6
Чем отличаются атрибуты async и defer у тега script? Как они влияют на загрузку и выполнение JavaScript?
Companies where asked
Morizo
Answer from AI
sobes.tech AI
Атрибуты async и defer у тега <script> влияют на загрузку и выполнение внешних JavaScript-файлов, оптимизируя работу страницы:
-
async
- Скрипт загружается асинхронно, параллельно с загрузкой HTML.
- Выполняется сразу после загрузки, не дожидаясь полной загрузки HTML.
- Выполнение скриптов с async не гарантирует порядок, если несколько таких скриптов.
- Используется для независимых скриптов, не зависящих от DOM или других скриптов.
-
defer
- Скрипт тоже загружается асинхронно, параллельно с HTML.
- Выполняется только после полной загрузки и парсинга HTML-документа.
- Скрипты с defer выполняются в порядке их появления в документе.
- Подходит для скриптов, которые взаимодействуют с DOM и должны выполняться после его готовности.
Если ни async, ни defer не указаны, скрипт загружается и выполняется синхронно, блокируя парсинг HTML.
Пример использования:
<script src="script1.js" async></script> <!-- загружается и выполняется сразу после загрузки -->
<script src="script2.js" defer></script> <!-- загружается параллельно, выполняется после парсинга -->