IE8中异步JavaScript加载后的空白缓存条目

时间:2013-03-11 18:57:00

标签: ajax caching internet-explorer-8 modernizr yepnope

我在我的一个项目中使用Modernizr。我想在下载polyfill之前测试占位符的存在。这是我用来完成这个的代码:

yepnope({
    test : Modernizr.input.placeholder,
    nope : '/js/jquery.placeholder.js',
    complete: function(){
        $('input, textarea').placeholder();
    }
});

我遇到了一个奇怪的问题。当我在没有从缓存中加载任何资源的情况下点击页面时,它工作得很好,但是如果我刷新页面,我会得到一个未定义的方法错误,用于调用.placeholder()。

查看开发工具,空的jquery.placeholder.js(来自缓存)似乎是罪魁祸首。我可以在Fiddler中验证第二个响应是返回304,并发送一个空体,这意味着IE应该在缓存中具有正确的版本,但它在某种程度上是空的。什么可能导致这种行为?

编辑:如果我将placeholder.js添加到头部,一切都运行良好。我以为我会指出这一点。

0 个答案:

没有答案