Атрибут defer HTML тега <script>
HTML тег <script>Значение и применение
При использовании внешнего скрипта, браузер будет ожидать его выполнения, а уже после этого отобразит ту часть документа, которая находится под ним (по умолчанию).
Логический атрибут defer (HTML тега <script>) указывает, что скрипт выполнится только тогда, когда страница загрузится полностью (только для внешних скриптов, которые загружаются с использованием атрибута src).
При использовании нескольких скриптов, которые имеют атрибут defer первым будет загружен тот, который был раньше указан (независимо от его размера), а затем браузер перейдет уже к загрузке второго, и так далее.
Кроме того, с использованием атрибута async вы можете указать, что скрипт выполняется асинхронно. То есть, когда браузер встречает скрипт, который имеет атрибут async он не останавит загрузку документа пока скрипт не выполнится, а продолжит её загрузку (асинхронное выполнение).
Обращаю Ваше внимание, что браузер Internet Explorer поддерживает этот атрибут только с версии 10.0.
Не используйте одновременно атрибут async и defer, современные браузеры в этом случае будут использовать только async.
Поддержка браузерами
Атрибут | Chrome | Firefox | Opera | Safari | IExplorer | Edge |
---|---|---|---|---|---|---|
defer | Да | Да | Да | Да | 10.0 | 12.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>