Задать вопрос
@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).

Почему?
  • Вопрос задан
  • 1134 просмотра
Подписаться 3 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Для продвинутого читателя, который знает, что теги <script> можно добавлять на страницу в любой момент при помощи самого javascript, заметим, что скрипты, добавленные таким образом, ведут себя так же, как async. То есть, выполняются как только загрузятся, без сохранения относительного порядка.

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

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

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

Похожие вопросы