При использовании обычного тега <script> браузер прерывает парсинг HTML, загружает и выполняет скрипт, после чего продолжает парсить.
<script async> загружает скрипт параллельно с парсингом HTML. Выполнение скрипта происходит сразу после его загрузки и перед завершением парсинга. Порядок выполнения асинхронных скриптов не гарантирован.
<script defer> также загружает скрипт параллельно с парсингом HTML. Выполнение скрипта откладывается до полного завершения парсинга HTML. Скрипты с defer выполняются в порядке их следования в документе.
| Атрибут | Парсинг HTML | Загрузка скрипта | Выполнение скрипта | Зависимость от порядка |
|---|---|---|---|---|
<script> | Приостанавливается | Блокирует | Блокирует | Да |
<script async> | Продолжается | Не блокирует | Не блокирует | Нет |
<script defer> | Продолжается | Не блокирует | Не блокирует | Да |
Пример:
html