有关jquery中ajax的缓存问题-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

有关jquery中ajax的缓存问题

我要做的是一个级联的省市区的联动下拉框,就是选择了省,然后异步读取该省的市的列表,如此类推。
=====================先粘贴我的代码============================
1.js中我是这样写的:

jQuery.ajax({

url:'ajaxGetList.do',
data:{parentId: parentId==''?'':parentId, level: level!=-1?'':'0'},
ifModified:true,
cache:true,
success:function(data){
    alert('success:'+data);//to set list..........
},
contentType: 'application/json',
dataType:'json'

});

展开
收起
a123456678 2016-07-29 11:23:53 1769 0
1 条回答
写回答
取消 提交回答
  • a123456678

    应该把 ifModified: true 去掉。

    仔细看一下你参考的文章:

    当你请求的资源并不是一层不变的时候,即不能简单的一直使用客户端缓存时,你可能通过将cache设置为false来发送请求,这实际上是在url加上时间戳组合成新的url,每次发送新的请求,这明显加大了服务器的压力。
    对于这种情况,我们可以通过ifModified参数改进缓存方式(即:cache和ifModified都设置为true),……
    他针对的是资源变动比较频繁的情况,希望时刻获取最新的文件,而你应该是想要尽量使用缓存吧。

    正常情况下如果接收到 304,浏览器会主动把缓存内容和状态 200 返回给 xhr 对象,一旦设置了 ifModified: true,从第二次请求开始,就没有了浏览器的处理过程,jQuery 直接接收到一个 304 和空内容。

    另外 contentType: 'application/json' 也用得不正确,一般情况下不用设置这个值。

    2019-07-17 20:01:44
    赞同 展开评论 打赏
问答排行榜
最热
最新
相关电子书
更多
分布式高并发缓存6.0
立即下载
基于英特尔 SSD 的虚拟机缓存解决SSD
立即下载
用户态高速块缓存方案
立即下载