@reech

Как загрузить JS-файл асинхронно?

Есть два JS-скрипта. Первый встраивается на страницу и содержит
document.write(\'<script src="//domain.ru/2.js"></\'+\'script>\'

То есть загружает второй JS-скрипт с другого домена.

Вопрос. Как загрузить первый скрипт асинхронно?
  • Вопрос задан
  • 795 просмотров
Решения вопроса 1
Petroveg
@Petroveg
Миром правят маленькие с#@&ки
Любой скрипт может сформировать динамически любое количество скриптов.

HTML (загружаем асинхронно скрипт)
<script src="..." async></script>

JS (в асинхронно загружаемом скрипте загружаем асинхронно ещё один скрипт)
var script = document.createElement('script');

script.src = '...';
script.async = true;
document.head.appendChild(script);

Update: При каждой вставке скрипта документ со статуса complete переходит в состояние interactive. Если во втором скрипте нужно делать что-то только после построения DOM, то нужно проверять так:
if (document.readyState != 'loading') {
	// Делаем что нужно
} else {
	document.addEventListener('DOMContentLoaded', function () {
		// Делаем что нужно
	});
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
IonDen
@IonDen
JavaScript developer. IonDen.com
Require.js позволит вам загружать любое кол-во js-файлов в любой последовательности и только в тот момент, когда они будут нужны.
Ответ написан
Ваш ответ на вопрос

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

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