Middle
168
questionbank

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

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

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

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

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

Сравнительная таблица:

АтрибутПарсинг HTML во время загрузки скриптаИсполнение скриптаСохранение порядка исполнения
НетПаузаСразу после загрузкиДа
asyncПродолжаетсяСразу после загрузки (может прервать парсинг)Нет
deferПродолжаетсяПосле завершения парсинга HTMLДа

Пример:`

html