我正在使用Ember.js构建一个应用程序。网站的管理部分需要使用一些不同的JavaScript库。
我只想在访问网站的管理路线时下载这些库。
我想我可以做类似下面的StackOverflow答案:
https://stackoverflow.com/a/11803418/2014469
$.when(
$.getScript( "/mypath/myscript1.js" ),
$.getScript( "/mypath/myscript2.js" ),
$.getScript( "/mypath/myscript3.js" ),
$.Deferred(function( deferred ){
$( deferred.resolve );
})
).done(function(){
//place your code here, the scripts are all loaded
});
但我对这些文件的执行顺序感到紧张。
假设myscript2.js
取决于myscript1.js
中的某些功能。
myscript1.js
之前会myscript2.js
加载 (!)并执行(!) 吗?
如果不是,我如何异步下载所有文件,然后按顺序执行?我想只是链接.then()
:
$.getScript( "/mypath/myscript1.js" )
.then(function{$.getScript( "/mypath/myscript2.js" )})
.then(function{$.getScript( "/mypath/myscript3.js" )})
但是这会等到下载并执行之后才会开始下载下一个 - 我想同时下载所有内容,然后按顺序执行它们。
感谢您的帮助。
答案 0 :(得分:1)
您需要一个管理脚本之间依赖关系的javascript加载器。
如果requirejs太大而无法满足您的需求,并且您不打算自己编写,请查看这些较小的库: http://microjs.com/#loader