Этот код дает вам функцию отсрочки, которая принимает URL и необязательный обратный вызов.Он асинхронно загружает ваш скрипт, не блокируя отображение страницы.Я установил защиту, чтобы он не загружал один и тот же сценарий дважды, поэтому вы можете наивно вызывать его столько раз, сколько захотите.
defer = (function () {
var urls = [];
return function (url, callback) {
var inc;
if (url && urls.indexOf(url) === -1) {
inc = document.createElement('script');
inc.async = true;
inc.src = url;
inc.onload = callback || function () {};
document.getElementsByTagName('head')[0].appendChild(inc);
}
}
}());
defer('http://maps.google.com/maps/api/js?sensor=false');
Это работает для любого внешнего JavaScript, которыйошибка при асинхронной загрузке.