使用Modernizr.load(yepnope.js)导致我的脚本被请求两次的原因是什么

时间:2011-06-19 01:51:05

标签: javascript modernizr dynamic-script-loading yepnope

我正在使用yepnope.js动态加载javascript文件,我注意到我的脚本似乎根据Firebug和Webkit Inspector加载了两次。

问题是在Firebug的Net面板(Firefox 4最新版)中,他们的回复是200,而不是304。它看起来比Chrome慢。

我上传了显示问题的this video。您可以看到文件jquery-1.6.1.min.jslibs.js如何加载额外的时间。

我用来执行此操作的代码如下,简化:

Modernizr.load({
                load: ['jquery-1.6.1.min.js', 'libs.js'],
                complete: function () {
                    console.log("loaded");
                }
});

Modernizr.load()yepnope()

1 个答案:

答案 0 :(得分:25)

在他们的文档中有关于此的说明:

来自http://yepnopejs.com/

  

我在开发中看到两个请求   工具,为什么要加载所有东西   两次?

     

取决于您的浏览器和   你的服务器这可能意味着一对   不同的东西。由于性质   yepnope如何工作,有两个   对每个文件的请求。该   第一个请求是加载资源   进入缓存和第二个请求   是执行它(但因为它在   缓存,它应该执行   立即)。看到两个请求是   只要第二个就很正常   请求已缓存。如果你注意到了   第二个请求没有缓存(和   你的脚本加载时间加倍),   然后确保你发送   正确的缓存标头允许   缓存脚本。这很重要   到了yepnope。没有它就行不通   启用适当的缓存。我们其实   测试以确保没有加载东西   在我们的测试套件中两次,所以如果你   我想我们可能有一个错误   关于双重加载的浏览器,我们   鼓励你运行测试套件   看看双重加载测试是否通过。