Middle
46
questionbank

Какая разница между <script>, <script async> и <script defer>?

Получайте ответы на вопросы в реальном времени с Sobes Copilot
Ответ от нейросети sobes.tech

При использовании обычного тега <script> браузер прерывает парсинг HTML, загружает и выполняет скрипт, после чего продолжает парсить.

<script async> загружает скрипт параллельно с парсингом HTML. Выполнение скрипта происходит сразу после его загрузки и перед завершением парсинга. Порядок выполнения асинхронных скриптов не гарантирован.

<script defer> также загружает скрипт параллельно с парсингом HTML. Выполнение скрипта откладывается до полного завершения парсинга HTML. Скрипты с defer выполняются в порядке их следования в документе.

АтрибутПарсинг HTMLЗагрузка скриптаВыполнение скриптаЗависимость от порядка
<script>ПриостанавливаетсяБлокируетБлокируетДа
<script async>ПродолжаетсяНе блокируетНе блокируетНет
<script defer>ПродолжаетсяНе блокируетНе блокируетДа

Пример:

html