之前一直在想法设法的实现js脚本文件按顺序执行,而且并行下载的测试,但是都无终而返。最先设想的是通过轮询的方式来实现按顺序加载,可是这样就导致不能并行加载了。 今天又拾起这个一直未实现的冲动,首先既然要并行加载、按顺序执行,那么就必须得给每一个js文件开一个http请求,而且这个请求是无顺序的,即是加载的顺序是无顺序的,但是在执行的时候,就得要按照声明的顺序来执行,比如下面的代码示例: [javascript] jL.load({"label":"test","url":"test.js",isOrder:true}); jL.load({"label":"test2","url":"test2.js",isOrder:false}); jL.load({"label":"test3","url":"test3.js",isOrder:true,callback:function(){ alert("test3.js is load"); }}).insert(); [/javascript] 上面的代码中,load方法的参数中包含是否按顺序加载脚本文件,并且在脚本加载下来的时候包含callback函数回调。如果不是按顺序下载的,则直接使用DOM Element的方式插入script到document.body中;insert方法负责开始操作那些俺顺序执行的脚本文件的加载和插入工作;label参数对于需要按顺序执行的脚本文件必不可少,用于标识当前脚本,对无需按顺序执行的脚本可有可无。