Атрибут defer является атрибутом-переключателем. Если данный атрибут указан, то скрипт будет запущен на исполнение только после того, как все элементы страницы будут полностью загружены.
Атрибут defer предназначен только для внешних скриптов и может использоваться только, если определен атрибут src.
Существует несколько способов исполнения внешних скриптов:
- Если установлен атрибут async="async", то скрипт исполняется асинхронно, т. е. скрипт будет исполняться одновременно с загрузкой страницы
- Если атрибут async не определен, а атрибут defer="defer", то скрипт будет исполнен сразу же, как будет закончена загрузка страницы
- Если атрибуты async или defer не определены, то скрипт загружается и исполняется сразу же, до того как браузер продолжит готовит страницу к отображению
В XHTML минимизация атрибутов запрещена, поэтому атрибут defer должен определяться как <script defer="defer">.
Синтаксис атрибута
<script defer>
Пример использования атрибута
Скрипт не будет запускаться до полной загрузки страницы:
<script src="//msiter.ru/demo_async.js" defer></script>