242 views

Подгрузка скриптов

подгрузка скриптов
могу предложить несколько вариантов
был найден в просторах интернета:

var elements = ["http://site.ru/js/onload.min.js?ver=2014.15.0", "http://site.ru/js/prism.js"],
   downloadJSAtOnload = function (n) {
   if ("[object Array]" !== Object.prototype.toString.call(n))return 0;
   var t, e;
   for (t = 0; t < n.length; t++)e = document.createElement("script"), e.src = n[t], document.body.appendChild(e);
   return !0
};
window.addEventListener ? window.addEventListener("load", function () {
   downloadJSAtOnload(elements)
}, !1) : window.attachEvent ? window.attachEvent("onload", function () {
   downloadJSAtOnload(elements)
}) : window.on load = function () {
   downloadJSAtOnload(elements)
};

и тут же такая реализация:

[
  '//other-domain.com/1.js',
  '2.js'
].forEach(function(src) {
  var script = document.createElement('script');
  script.src = src;
  script.async = false; //
  document.head.appendChild(script);
});

script.async = false; даст нашим скриптам сочетание с поведением, которое не может быть достигнуто чистым HTML. Явно заданные неасинхронными, скрипты добавляются в очередь на выполнение

Асинхронная загрузка скрипта HTML5:

<script async src="http://www.site.ru/script.js" type="text/javascript"></script>

<script defer src="http://www.site.ru/script.js" type="text/javascript"></script>

В обоих случаях мы получаем асинхронную загрузку скриптов. Разница заключается только в моменте, когда скрипт начинает выполнятся. Скрипт с атрибутом async выполнится при первой же возможности после его полной загрузки, но до загрузки объекта window. В случае использования атрибутаdefer — скрипт не нарушит порядок своего выполнения по отношению к остальным скриптам и его выполнение произойдет после полной загрузки и парсинга страницы, но до события DOMContentLoaded объекта document.
К сожалению, этот механизм на сегодняшний день не работает во всех браузерах (особенно это касается IE). Также не будет работать, если в файлеscript.js есть строки document.write.

Асинхронная загрузка javascript скриптом от Google:

<script src="http://extsrcjs.googlecode.com/svn/trunk/extsrc.js"></script>
<script extsrc="...."></script>

этот способ тоже не подойдет к файлам с document.write

Так же есть готовое решение http://requirejs.org/ позволяет зависимости выставлять.

This site is using the Seo Wizard wordpress plugin by www.seowizard.org.