Sobes.tech
Middle
109
questionbank

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

AI答案

sobes.tech AI

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

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

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

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