Атрибут 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