ajax解决缓存问题

来源:互联网 发布:30岁程序员找不到工作 编辑:程序博客网 时间:2024/06/05 19:04
在做一个AJAX处理,由于发送的ajax不只一个,一连发送好几个请求

在网速慢的时候,导致返回的数据重复

在网上找到一篇文章
做了一个聊天室,用setTimeout+AJAX来读取数据,当网速慢时同一句话会重复多次,网速好的时候就不会,这是为什么呢

最佳答案
Ajax是会有这中问题,因为你的请求链接没有变,所以他不会每次都请求,而是使用缓存中的数据,最有可能是第一次请求的结果。 解决把法: 为请求链接设计变化的参数 var url = "request.php?date="+new Date(); 网速慢时数据更新慢,你的Ajax传的数据是重复的。我认为通过上面的设置变参的方式可以解决。  实质上一连发送好几个请求跟setTimeout+AJAX都有一个问题,一连串的发送数据
但是服务端并不是按这个顺序把数据处理完的 方法2:请求的URL后面加上个随机数Math.random 缓存的问题或者xmlHTTP.setRequestHeader("If-Modified-Since","0");   这样是正规的做法 再copy一篇文章做一个项目用到Ajax,开始觉得挺好,后来发现一个问题,例如删除一项,恢复之后就不能再接着删除, 必须要等一段时间,后来知道是IE缓存的问题 AJAX缓存页面是一个刚接触AJAX的人一定会遇到的问题,造成这个问题的关键性人物又是Ie...     终于让我找到了一个好办法,那就在ajax发送请求前加上
Javascript代码
  1. xmlHTTP.setRequestHeader("If-Modified-Since","0");  
xmlHTTP.setRequestHeader("If-Modified-Since","0");
也就是类似于这样:
Javascript代码
  1. xmlHTTP.open("get"URL, true);  
  2. xmlHTTP.onreadystatechange callHTML;  
  3. xmlHTTP.setRequestHeader("If-Modified-Since","0");  
  4. xmlHTTP.send();  
xmlHTTP.open("get", URL, true); xmlHTTP.onreadystatechange = callHTML; xmlHTTP.setRequestHeader("If-Modified-Since","0"); xmlHTTP.send();
怎么样,很简单吧!!之前找的什么在URL家一个随即数什么的,我用了下,不是很好用。
现在就把使用的具体代码贴下来吧!!
原创粉丝点击