我正在尝试使用Modernizer.load。
我有这个:
Modernizr.load([
{
load : ['/js/jquery-1.6.1.js', '/js/jquery.tools.min.js', '/js/myscript.js']
}
]);
如果我理解正确,我可以使用这样的代码异步加载脚本。但是,我可以按顺序执行它们吗?如果myscript.js需要首先加载jquery对象怎么办?
在modernizr文档的示例中,load([])可以采用'complete'属性,其参数可以是一个函数,可以在其他所有内容完成时加载另一个脚本。但是,如果我在这里使用一个函数来加载我的post-dependancy脚本,那么它将以串行方式加载。文档明确指出这可能会损害性能。
但是,如果我异步加载所有内容,我对它们的运行顺序一无所知。当然,我需要先依靠我的依赖。
答案 0 :(得分:12)
如果您使用Modernizr.load
,则您通过嵌入式列表/哈希包含的所有文件都将异步加载,但它们各自已执行你把它们放入的顺序。
因此,您的示例将异步加载文件,但按以下顺序执行:
1: /js/jquery-1.6.1.js
2: /js/jquery.tools.min.js
3: /js/myscript.js`
顺便说一句,你可以简化你的例子:
Modernizr.load(['/js/jquery-1.6.1.js', '/js/jquery.tools.min.js', '/js/myscript.js']);
有关详细信息,请参阅文档中的Modernizr.load() tutorial,或查看Yepnopejs.com(目前这是Modernizr.load()的基本内容。)