@Extramezz

Почему не работает defer?

На странице подключается async.js:

<script type="text/javascript" src="async.js" async></script>


Содержимое async.js:

var script = document.createElement("script");

script.src = "defer.js";
script.defer = true;
script.type = "text/javascript";

document.head.appendChild(script);


Но defer.js выполняется не после загрузки страницы, а так, будто бы имеет атрибут async, за место defer. (Если открыть отладчик, то там DOM-узел будет без async, а именно с defer).

Почему?
  • Вопрос задан
  • 1074 просмотра
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Для продвинутого читателя, который знает, что теги <script> можно добавлять на страницу в любой момент при помощи самого javascript, заметим, что скрипты, добавленные таким образом, ведут себя так же, как async. То есть, выполняются как только загрузятся, без сохранения относительного порядка.

Если же нужно сохранить порядок выполнения, то есть добавить несколько скриптов, которые выполнятся строго один за другим, то используется свойство script.async = false.

https://learn.javascript.ru/external-script#асинхр...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы