如何解决AJAX 的缓存
2017-10-26 20:20
197 查看
解决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
$.ajax({
type : "get",
url : "http://search.json?t="+new Date(),
dataType : "json",
success : function(json) {
}
});
这样由于每次请求的参数有所不同,程序不会从浏览器里面读取缓存。
2、在ajax请求时候加上cache:false的参数,如:
[javascript] view
plain copy
$.ajax({
type : "get",
url : "http://search.json",
dataType : "json",
cache:false,
success : function(json) {
}
});
cache设置为 false 将不会从浏览器缓存中加载请求信息。
3、将ajax请求类型改为post,如:
[javascript] view
plain copy
$.ajax({
type : "post",
url : "http://search.json",
dataType : "json",
success : function(json) {
}
});
请求类型改为post, 将不会从浏览器缓存中加载请求信息。
备注:
①GET请求,浏览器认为是等幂的,就是一个相同的URL只有一个结果[相同是指整个URL字符串完全匹配],所以第二次访问的时候如果URL字符串没
变化,浏览器直接使用第一次访问的结果。
②POST请求,浏览器则认为是一个变动性访问(浏览器认为POST的提交必定是有改变的),所以每次都是重新发送请求。
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
$.ajax({
type : "get",
url : "http://search.json?t="+new Date(),
dataType : "json",
success : function(json) {
}
});
这样由于每次请求的参数有所不同,程序不会从浏览器里面读取缓存。
2、在ajax请求时候加上cache:false的参数,如:
[javascript] view
plain copy
$.ajax({
type : "get",
url : "http://search.json",
dataType : "json",
cache:false,
success : function(json) {
}
});
cache设置为 false 将不会从浏览器缓存中加载请求信息。
3、将ajax请求类型改为post,如:
[javascript] view
plain copy
$.ajax({
type : "post",
url : "http://search.json",
dataType : "json",
success : function(json) {
}
});
请求类型改为post, 将不会从浏览器缓存中加载请求信息。
备注:
①GET请求,浏览器认为是等幂的,就是一个相同的URL只有一个结果[相同是指整个URL字符串完全匹配],所以第二次访问的时候如果URL字符串没
变化,浏览器直接使用第一次访问的结果。
②POST请求,浏览器则认为是一个变动性访问(浏览器认为POST的提交必定是有改变的),所以每次都是重新发送请求。
相关文章推荐
- 如何解决Ajax请求结果的缓存问题说明
- 如何解决Ajax请求结果的缓存问题说明
- 如何解决Ajax请求结果的缓存问题说明
- 在ajax交互时出现的缓存的问题如何解决?
- jquery 请求ie缓存,数据不更新的问题【ajax禁用缓存解决ie数据不更新的问题】
- IE下Ajax缓存问题的快速解决方法(get方式)
- jquery 请求ie缓存,数据不更新的问题【ajax禁用缓存解决ie数据不更新的问题】
- Ajax解决浏览器的缓存问题
- Ajax缓存解决办法
- Ajax如何关闭缓存
- Ajax不运行解决一例:动态页的客户端网页缓存
- ajax的get请求时缓存处理解决方法
- 谷歌浏览器如何设置可以解决Ajax跨域问题?
- Ajax解决浏览器的缓存问题
- Ajax缓存解决方法
- IE中ajax+jsp登录界面,由于缓存导致jsp过滤器与ajax请求被拦截的问题和解决
- Ajax方法执行跳转或者加载操作系统报出这样错误Sys.WebForms.PageRequestManagerParserErrorException:如何让解决
- JSP缓存、HTML 缓存、AJAX缓存的解决方法
- AJAX解决什么问题?如何使用AJAX?AJAX有什么问题需要注意?项目中哪里用到了AJAX?
- AJAX 缓存问题的两种解决方法(IE