<script> без атрибутов<script>.<script>.<script async>async не гарантируется, зависит от скорости их загрузки.<script defer>DOMContentLoaded.defer гарантируется, соответствует порядку их расположения в HTML.<script> помещенному перед закрывающим тегом </body>.<script type="module"> (для ECMAScript Modules)<script defer> по умолчанию (отложенное выполнение после парсинга, сохранение порядка).async.| Атрибут | Загрузка скрипта | Выполнение скрипта | Блокировка парсинга HTML | Порядок выполнения |
|---|---|---|---|---|
| Нет | Блокирующая | Блокирующее | Да | Сохраняется |
async | Не блокирующая (параллельная) | Не блокирующее (по завершении загрузки) | Нет | Не гарантируется |
defer | Не блокирующая (параллельная) | Не блокирующее (после парсинга HTML) | Нет | Сохраняется |
type="module" | Не блокирующая (параллельная) | Не блокирующее (после парсинга HTML, по умолчанию) | Нет | Сохраняется (по умолчанию) |
javascript
javascript
javascript
javascript