Javascript Firefox3在页面加载期间调用ajax时不使用缓存
当使用jQuery加载页面DOM时,我使用ajax获得一些json数据,如下所示:Javascript Firefox3在页面加载期间调用ajax时不使用缓存,javascript,jquery,ajax,firefox,caching,Javascript,Jquery,Ajax,Firefox,Caching,当使用jQuery加载页面DOM时,我使用ajax获得一些json数据,如下所示: $(document).ready(function(){ getData(); }); function getData(){ $.ajax({cache: true, dataType: 'json', url: '/foo/bar'}); } $(document).ready(function(){ setTimeout("getData()", 1); }); …其
$(document).ready(function(){
getData();
});
function getData(){
$.ajax({cache: true, dataType: 'json', url: '/foo/bar'});
}
$(document).ready(function(){
setTimeout("getData()", 1);
});
…其中getData()是一个简单的jQuery ajax调用,如下所示:
$(document).ready(function(){
getData();
});
function getData(){
$.ajax({cache: true, dataType: 'json', url: '/foo/bar'});
}
$(document).ready(function(){
setTimeout("getData()", 1);
});
此请求的Expires标头设置为将来某个时间,因此下次加载页面时,ajax调用应该使用缓存的数据。Firefox3没有
但是,如果我要求这样的数据:
$(document).ready(function(){
getData();
});
function getData(){
$.ajax({cache: true, dataType: 'json', url: '/foo/bar'});
}
$(document).ready(function(){
setTimeout("getData()", 1);
});
Firefox尊重Expires头,并使用缓存。你知道为什么会这样吗
提到浏览器处理页面加载时发生的ajax调用可能与响应用户UI事件时发生的ajax调用不同
编辑:我忘了在我的原始帖子中包含http标题。我认为头文件很好,因为只要页面加载时请求不是在ajax调用中发出的,缓存就可以工作。如果我访问ajax调用在浏览器url栏中使用的url,缓存就可以工作,正如我上面解释的,如果我给ajax调用增加一点延迟,缓存就可以工作
请求头
- 主持人10.0.45.64:5004
- 用户代理Mozilla/5.0(Windows;U;Windows NT 5.1;en-US;rv:1.9.2.9)Gecko/20100824 Firefox/3.6.9
- 接受application/json、text/javascript、/
- 接受我们的语言,嗯;q=0.5
- 接受编码gzip,放气
- 接受字符集ISO-8859-1、utf-8;q=0.7,*;q=0.7
- 活命
- 连接保持活动状态
- X-request-With-XMLHttpRequest
- 饼干
- 日期2011年5月4日星期三15:32:04 GMT
- 最后修改日期:2011年5月4日星期三15:32:03 GMT
- 2011年5月11日星期三15:32:03 GMT到期
- 内容类型text/javascript
- 缓存控制公用
- 连接关闭
cache:true
。实际上,它什么都不做。