如何解决AJAX 的缓存

解决AJAX 的缓存的方法

1、在ajax发送请求前加上anyAjaxObj.setRequestHeader("If-Modified-Since","0");

2、在ajax发送请求前加上anyAjaxObj.setRequestHeader("Cache-Control","no-cache");

3、在 Ajax 的 URL 参数后加上"?fresh=" + Math.random();

4、第五种方法和第四种类似,在 URL 参数后加上 "?timestamp=" + new Date().getTime();

5、如果是使用jQuery,直接这样就可以了$.ajaxSetup({cache:false})。这样页面的所有ajax都会执行这条语句就是不需要保存缓存记录。

6、用POST替代GET

以下主要描述如何解决Jquery ajax的缓存问题。


在使用jquery进行ajax操作时,如果Get请求的参数不变化,而且IE浏览器设置缓存不是每次访问网页时(IE工具->internet选项->浏览历史记录下的设置->检查所存网页的较新版本),则可能会出现程序不经过后台,直接从浏览器缓存里读数据的情况。

可以有三种解决方法
1、在请求的参数后面加上时间,如:
[javascript] view plain copy
  1. $.ajax({
  2. type:"get",
  3. url:"http://search.json?t="+newDate(),
  4. dataType:"json",108); list-style-type:decimal-leading-zero; color:inherit; line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important; list-style-position:outside!important"> success:function(json){
  5. }
  6. });
这样由于每次请求的参数有所不同,程序不会从浏览器里面读取缓存。

2、 在ajax请求时候加上cache:false的参数,如:
copy
    url:"http://search.json",108); list-style-type:decimal-leading-zero; color:inherit; line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important; list-style-position:outside!important"> cache:false,248); line-height:18px; margin:0px!important; padding:0px 3px 0px 10px!important; list-style-position:outside!important"> success:function(json){
  1. }
  2. });
cache设置为 false 将不会从浏览器缓存中加载请求信息。
3、将ajax请求类型改为post,如:
[javascript] view plain copy
  1. $.ajax({
  2. type:"post",
  3. function(json){
  4. }
  5. });
请求类型改为post, 将不会从浏览器缓存中加载请求信息。

备注:
①GET请求,浏览器认为是等幂的,就是一个相同的URL只有一个结果[相同是指整个URL字符串完全匹配],所以第二次访问的时候如果URL字符串没
变化,浏览器直接使用第一次访问的结果。
②POST请求,浏览器则认为是一个变动性访问(浏览器认为POST的提交必定是有改变的),所以每次都是重新发送请求。

相关文章

JS原生Ajax操作(XMLHttpRequest) GET请求 POST请求 兼容性问题 利用iframe模拟ajax 实现表单提交的返回...
AJAX 每日更新前端基础,如果觉得不错,点个star吧 😃 https://github.com/WindrunnerMax/E...
踩坑Axios提交form表单几种格式 前后端分离的开发前后端, 前端使用的vue,后端的安全模块使用的SpringSe...
很早就听闻ajax的名声,但是却一直不知道怎么用,今天自己捣鼓了一下,竟然会用了,哈哈哈哈。 为了防止...
需要在服务器上进行哈 jquery的ajax方法: // jquery请求 $.ajax({ url: "./server/slider.js...
Ajax函数封装ajax.js // Get / Post // 参数 get post // 是否异步 // 如何处理响应数据 // URL // var...