Advertisement
Guest User

Untitled

a guest
Nov 28th, 2015
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /*
  2. использование
  3. imports([
  4.     "/js/src/supports/supports_html5.js"           
  5.     ],
  6.     function (){
  7.         alert('test');
  8.     },
  9.     function (err){
  10.         alert(err);
  11.     });
  12. */
  13.  
  14. //код
  15. var registrImport = {};
  16.  
  17. registrImport["/js/kernel/importer/importer.js"] = 0;
  18.  
  19. (function(){
  20.     registrImportUpdate("/js/kernel/package/package.js");
  21.     var script = document.createElement('script');
  22.     script.src = "/js/kernel/package/package.js";
  23.     script.async = false;
  24.     script.defer = true;
  25.     document.head.appendChild(script);
  26.     script.onerror = function() {
  27.       alert("Ошибка при загрузке системного пакета package.js");
  28.     };
  29. });
  30.  
  31. function imports(arr, onSuccess, onError){
  32.     var count = arrCount(arr);
  33.   var coutLoad = 0;
  34.  
  35.   arr.forEach(function(item) {
  36.     coutLoad++;
  37.  
  38.         if (registrImport[item] == undefined){
  39.          loadScript(item, onSuccess, onError, count, coutLoad);
  40.       } else {
  41.          console.info(item + "  загружен ранее.");
  42.       }
  43.   });
  44. }
  45.  
  46. function arrCount(arr){
  47.   var count = 0;
  48.   arr.forEach(function(){
  49.     count++;
  50.   });
  51.   return count;
  52. }
  53.  
  54. function loadScript(url, onSuccess, onError, count, coutLoad){
  55.     registrImportUpdate(url);
  56.  
  57.     var script = document.createElement('script');
  58.     script.src = url;
  59.     script.async = false;
  60.     script.defer = true;
  61.     document.head.appendChild(script);
  62.  
  63.     script.onerror = function() {
  64.       onError(url);
  65.     };
  66.  
  67.     script.onload = function() {
  68.       if(count == coutLoad){
  69.         onSuccess();
  70.       }
  71.     };  
  72. }
  73.  
  74. function registrImportUpdate(url){
  75.   registrImport[url] = 0;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement