Атрибут defer в HTML <script>
Определение и использование
defer
атрибут является булевым атрибутом.
Если установлено defer
атрибут, он specifies that the script should be downloaded in parallel with parsing the page and executed after the page parsing is complete.
Внимание:defer
атрибут доступен только для внешних скриптов (только если атрибут src его следует использовать только в том случае, если)
Внимание:Внешние скрипты можно запускать несколькими способами:
- Если установлено async: скрипт загружается параллельно с парсингом страницы и выполняется немедленно, когда он становится доступным (до завершения парсинга)
- Если установлено defer (но не async): скрипт загружается параллельно с парсингом страницы и выполняется после завершения парсинга
- Если ни async, ни defer не установлены: скрипт загружается и выполняется немедленно, блокируя парсинг страницы, до тех пор, пока скрипт не выполнится
Пример
Скрипт будет загружаться параллельно с анализом страницы и выполнится после завершения анализа:
<script src="demo_defer.js" defer></script>
Синтаксис
<script defer>
Отложить выполнение скрипта
Вы можете контролировать способ выполнения скрипта с помощью атрибутов async и defer. Атрибут defer указывает браузеру, что скрипт можно выполнить только после завершения загрузки и анализа страницы.
Браузер откладывает загрузку и выполнение скрипта с атрибутом defer до тех пор, пока все элементы HTML-документа не будут проанализированы.
Это эквивалентно тому, чтобы переместить script в конец страницы:
<body> ... ... ... ... ... ... <script src="demo.js"></script> </body>
Поддержка браузерами
Числа в таблице указывают на версию первого браузера, который полностью поддерживает этот атрибут.
Chrome | Edge | Firefox | Safari | Opera |
---|---|---|---|---|
Chrome | Edge | Firefox | Safari | Opera |
8.0 | 10.0 | 3.5 | 5.0 | 15.0 |