坑爹的IE缓存

做一个项目用到Ajax,刚开始没仔细发现,后来发现提交同一个url(如url.php?do=new)时候XXXXX.send(url),返回结果都是一样的,而我url.php获取的是最新的数据,在FF和Chorme浏览器都正常,返回最新数据!这才知道是IE缓存的问题。(真是麻烦,没办法,现在用IE还是占大多数,就改吧)

在网上找了好多资料后,总结一下

1:在AJAX请求的页面后加个随机函数,我们可以使用随机时间函数

在javascript发送的URL后加上t=Math.random(),当然,不是直接把t=Math.random()拷贝到URL后面,应该像这样:URL+”&”+”t=”+Math.random();//或者newDate().getTime()

2:在XMLHttpRequest发送请求之前加上XMLHttpRequest.setRequestHeader(“If-Modified-Since”,”0″)

一般情况下,这里的XMLHttpRequest不会直接使用,你应该可以找到这样的代码

XMLHttpRequest.send(YYYYYY);

那么,就把它变成

XXXXX.setRequestHeader(“If-Modified-Since”,”0″);

XXXXX.send(YYYYYY);

相关推荐