解决使用Ajax时浏览器的缓存问题

来源:互联网 发布:婚纱照编辑软件 编辑:程序博客网 时间:2024/05/17 22:36

======================================================
注:本文源代码点此下载
======================================================

在最近的项目中使用到了ajax来批量导入更新数据,第一次提交正常,后面提交同样的订单就有问题了。订单明明已经处理了,可是界面还是提示没有处理。

查找了下原因,原来是ajax的缓存问题造成。

解决方法如下:

1、在服务端加 header("cache-control: no-cache, must-revalidate");(如php中)

2、在ajax发送请求前加上 anyajaxobj.setrequestheader("if-modified-since","0");

3、在ajax发送请求前加上 anyajaxobj.setrequestheader("cache-control","no-cache");

4、在 ajax 的 url 参数后加上 "?fresh=" + math.random(); //当然这里参数 fresh 可以任意取了

5、第五种方法和第四种类似,在 url 参数后加上 "?timestamp=" + new date().gettime();

6、用post替代get:不推荐

在项目中使用第四种办法解决:math.random(),加上这个随机参数后,系统正常了。

$.ajax({

type: "get",

async: false,

url: "../handler/k3importdeliveryhandler.ashx?orderid=" + text[i] + '&time=' + math.random(),

beforesend: function(xmlhttprequest) {

$('#loading').show();

$('#txtlog').val($('#txtlog').val() + '【正在处理订单' + text[i] + '...】\n');

},

success: function(data, textstatus) {

$('#txtlog').val($('#txtlog').val() + data + '\n');

},

complete: function(xmlhttprequest, textstatus) {

$('#loading').hide('slow');

},

error: function() {

}

});

作者:dap

出处:http://dupeng0811.cnblogs.com/

本文版权归作者和博客园共有,欢迎转载,请在文章页面明处给出原文连接.

绿色通道:好文要顶关注我收藏该文与我联系


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
原创粉丝点击