Атрибут defer
Атрибут defer, тега <SCRIPT>, откладывает выполнение скрипта до полной загрузки страницы и сообщает браузеру, что данный скрипт не используется для генерации содержимого HTML-документа (не используется метод document.write()). То есть скрипт с defer не только сам не будет выполнен, но и другие скрипты не смогут использовать его содержимое пока страница полностью не загрузится. Данный атрибут играет роль булевой переменной.
В основном атрибут defer применяется в тех случаях, когда самому скрипту для работы необходимы данные, расположенные ниже него в HTML-коде (сверху вниз, слева направо), то есть которые на момент объявления скрипта еще не сформированы браузером. Единственный минус defer — он поддерживается только IE.
Будьте внимательны с атрибутом defer. Если вы примените его для скрипта, содержащего метод document.write(), то могут возникать непредвиденные ошибки. В некоторых случаях браузер успешно их исправляет, но не всегда.
Булева переменная — это переменная, которая может иметь всего два значения: true или false (истина или ложь). В нашем случае присутствие defer является истиной (выполнение отложено), а его отсутствие - ложью (выполняется как обычно).
Значения
Атрибут сам играет роль значения.
Значение по умолчанию: Если defer отсутствует, то выполнение скрипта не будет отложено.
Синтаксис
<script type="значение" defer>...</script>
Обязательный атрибут: нет.
Пример HTML: применение атрибута defer
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "https://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>seodon.ru - Тег SCRIPT, атрибут defer</title>
</head>
<body>
<!-- Если убрать defer, то скрипт не будет работать -->
<script type="text/javascript" defer>
var sum = document.forms[0].elements.length;
alert("Элементов в форме: " + sum);
</script>
<form action="files/questions.php">
<p><input type="text" name="name" value="Ваше имя"></p>
</form>
</body>
</html>
Поддержка версиями HTML
Версия: | HTML 4.01 | HTML 5 | XHTML 1.0 | XHTML 1.1 |
Поддержка: | Да | Да | Да | Да |
Поддержка браузерами
Браузер: | Internet Explorer | Google Chrome | Mozilla Firefox | Opera | Safari |
Версия: | 6.0 и выше | 2.0 и выше | 2.0 и выше | 9.2 и выше | 3.1 и выше |
Поддержка: | Да | Нет | Нет | Нет | Нет |