Javascript 异步下载几个js脚本,然后按顺序执行
我正在使用Ember.js构建一个应用程序。网站的管理部分需要使用一些不同的JavaScript库 我只想在访问站点的管理路径时下载这些库 我想我可以做如下回答: 但我对那些文件的执行顺序感到紧张 假设Javascript 异步下载几个js脚本,然后按顺序执行,javascript,jquery,asynchronous,ember.js,Javascript,Jquery,Asynchronous,Ember.js,我正在使用Ember.js构建一个应用程序。网站的管理部分需要使用一些不同的JavaScript库 我只想在访问站点的管理路径时下载这些库 我想我可以做如下回答: 但我对那些文件的执行顺序感到紧张 假设myscript2.js依赖于myscript1.js中的一些函数 myscript1.js会在myscript2.js之前加载(!)并执行(!) 如果不是,我如何异步下载所有文件,然后按顺序执行它们?我只想链接。然后(): 但那要等到一个被下载并执行之后,它才能开始下载下一个——我想同时下载所
myscript2.js
依赖于myscript1.js
中的一些函数
myscript1.js
会在myscript2.js
之前加载(!)并执行(!)
如果不是,我如何异步下载所有文件,然后按顺序执行它们?我只想链接。然后()
:
但那要等到一个被下载并执行之后,它才能开始下载下一个——我想同时下载所有的,但然后按顺序执行它们
感谢您的帮助。您需要一个javascript加载程序来管理脚本之间的依赖关系 如果requirejs对于您的需求来说太大了,并且您不打算自己编写一个,那么看看这些较小的库:
我一直在研究它-但我真的只需要在我的网站上的一个地方使用它,表面上看,似乎没有必要包含另一个库来加载其他库。。。但缩小后的版本只有14kb。。。嗯…你要找的是承诺链。我想要一个样本,但我现在在手机上。也许这不是最优雅的选择,但你能把只管理的js库都集中到一个js文件中,然后直接加载吗?我想到了这个想法。这可能就是我要走的路线。
$.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
});
$.getScript( "/mypath/myscript1.js" )
.then(function{$.getScript( "/mypath/myscript2.js" )})
.then(function{$.getScript( "/mypath/myscript3.js" )})