Middle
37
questionbank

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

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

Обычный <script>: браузер останавливает парсинг HTML, загружает и исполняет скрипт, затем продолжает парсинг. Блокирует отображение.

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

<script defer>: скрипт загружается асинхронно, парсинг HTML продолжается. Исполнение скрипта откладывается до завершения парсинга HTML и построения DOM-дерева. Скрипты исполняются в порядке их следования в HTML.

АтрибутПарсинг HTMLЗагрузка скриптаИсполнение скриптаЗависимость от порядка
ОтсутствуетОстановкаБлокирующаяБлокирующаяГарантирован
asyncПродолжаетсяНеблокирующаяМожет прервать парсингНе гарантирован
deferПродолжаетсяНеблокирующаяПосле парсинга HTMLГарантирован