我正在使用yepnope.js动态加载javascript文件,我注意到我的脚本似乎根据Firebug和Webkit Inspector加载了两次。
问题是在Firebug的Net面板(Firefox 4最新版)中,他们的回复是200
,而不是304
。它看起来比Chrome慢。
我上传了显示问题的this video。您可以看到文件jquery-1.6.1.min.js
和libs.js
如何加载额外的时间。
我用来执行此操作的代码如下,简化:
Modernizr.load({
load: ['jquery-1.6.1.min.js', 'libs.js'],
complete: function () {
console.log("loaded");
}
});
Modernizr.load()
是yepnope()
。
答案 0 :(得分:25)
在他们的文档中有关于此的说明:
我在开发中看到两个请求 工具,为什么要加载所有东西 两次?
取决于您的浏览器和 你的服务器这可能意味着一对 不同的东西。由于性质 yepnope如何工作,有两个 对每个文件的请求。该 第一个请求是加载资源 进入缓存和第二个请求 是执行它(但因为它在 缓存,它应该执行 立即)。看到两个请求是 只要第二个就很正常 请求已缓存。如果你注意到了 第二个请求没有缓存(和 你的脚本加载时间加倍), 然后确保你发送 正确的缓存标头允许 缓存脚本。这很重要 到了yepnope。没有它就行不通 启用适当的缓存。我们其实 测试以确保没有加载东西 在我们的测试套件中两次,所以如果你 我想我们可能有一个错误 关于双重加载的浏览器,我们 鼓励你运行测试套件 看看双重加载测试是否通过。