Атрибут defer HTML тега <script>

HTML тег <script>

Значение и применение

При использовании внешнего скрипта, браузер будет ожидать его выполнения, а уже после этого отобразит ту часть документа, которая находится под ним (по умолчанию).

Логический атрибут defer (HTML тега <script>) указывает, что скрипт выполнится только тогда, когда страница загрузится полностью (только для внешних скриптов, которые загружаются с использованием атрибута src).

При использовании нескольких скриптов, которые имеют атрибут defer первым будет загружен тот, который был раньше указан (независимо от его размера), а затем браузер перейдет уже к загрузке второго, и так далее.

Кроме того, с использованием атрибута asynchtml5 вы можете указать, что скрипт выполняется асинхронно. То есть, когда браузер встречает скрипт, который имеет атрибут asynchtml5 он не останавит загрузку документа пока скрипт не выполнится, а продолжит её загрузку (асинхронное выполнение).


Обращаю Ваше внимание, что браузер Internet Explorer поддерживает этот атрибут только с версии 10.0.

Не используйте одновременно атрибут asynchtml5 и defer, современные браузеры в этом случае будут использовать только asynchtml5.


Поддержка браузерами

АтрибутChrome
Chrome
Firefox
Firefox
Opera
Opera
Safari
Safari
Internet Explorer
IExplorer
Microsoft Edge
Edge
deferДаДаДаДа10.012.0

Синтаксис:

<script defer>

Значения атрибута

ЗначениеОписание
deferЗначение атрибута требуется только в XHTML (<script defer = "defer">).

Отличия HTML 4.01 от HTML 5

Нет

Пример использования

 <!-- атрибутом src  указываем относительный путь к файлу со скриптом (файл в той же папке, что и документ),
и атрибутом defer указываем, что скрипт выполнится, когда страница загрузится полностью -->
<script src = "myscript.js" defer>
// здесь не должно быть какой-либо информации
</script>

Пример использования нескольких скриптов, которые имеют атрибут defer:

<script src = "myscript1.js" defer> // будет загружен первым, так как указан раньше (независимо от размера)
<script src = "myscript2.js" defer> // затем браузер перейдет к загрузке второго
HTML тег <script>