动态脚本加载

时间:2013-09-28 14:08:45

标签: javascript

我有一个Web应用程序,我需要在页面加载后加载许多js脚本。我试图在while循环中执行此操作,如下所示:

while (....) {
  var script = document.createElement('script');

  //
  // Here i'm adding script to the html page
  //

  script.onload = function(){
    //
    // Do somthing here
    //
  }

}

但我有一个问题,我在不同的时间有3 - 5 js个脚本,但正确加载只有一个脚本,其他脚本或没有时间加载循环或我不明白什么是错的。如何正确加载并包含许多html脚本的js页面?

谢谢。

2 个答案:

答案 0 :(得分:2)

你可以看一下at this blog它解释了不同的JS Loaders ......目前我正在使用HeadJS(远离RequireJS),到目前为止它已经非常好了。

我甚至有一个Loader.js类,这是我在HTML代码上加载的唯一脚本(除了head.js本身),并且就像魅力一样。

请参阅以下代码:

head.js("./js/ink/ink-all.js", 
        "./js/jquery/jquery.js", 
        "./js/html5-boilerplate/plugins.js", 
        "./js/i18next/i18next-1.6.3.js", 
        "./js/reclameAqui/ReclameAqui.js", 
        "./js/reclameAqui/controller/IndexController.js", 
        "./js/reclameAqui/controller/NavBarController.js", 
        "./js/reclameAqui/controller/FooterController.js", 
        "./js/reclameAqui/controller/ApplicationController.js", 
        "./js/angular/angular.js", 
        "./js/reclameAqui/utils/i18n/DictionaryLoader.js", 
        function() {
          var appReclameAqui;
          console.info("Loading...");
          return appReclameAqui = new ReclameAqui();
        });

答案 1 :(得分:0)

找到解决方案。我正在使用[] .forEach而不是while循环。