20

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

问题是在 Firebug 的 Net 面板(最新的 Firefox 4)中,他们的响应是 a 200,而不是304. 它似乎比 Chrome 慢。

我已经上传了这个显示问题的视频。您可以看到文件是如何加载的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()

4

1 回答 1

25

在他们的文档中有一个说明:

来自http://yepnopejs.com/

我在我的开发工具中看到两个请求,为什么它会加载两次?

根据您的浏览器和服务器,这可能意味着一些不同的事情。由于 yepnope 工作方式的性质,每个文件都有两个请求。第一个请求是将资源加载到缓存中,第二个请求是执行它(但由于它在缓存中,它应该立即执行)。只要第二个请求被缓存,看到两个请求是很正常的。如果您注意到第二个请求没有被缓存(并且您的脚本加载时间加倍),那么请确保您发送正确的缓存标头以允许缓存您的脚本。这对 yepnope 至关重要。如果没有启用适当的缓存,它将无法工作。我们实际上进行了测试,以确保在我们的测试套件中不会加载两次,

于 2011-06-20T05:53:51.867 回答