jquery的ajax的缓存问题
2014-12-19 17:39
162 查看
以下主要描述如何解决Jquery ajax的缓存问题。
在使用jquery进行ajax操作时,如果Get请求的参数不变化,而且IE浏览器设置缓存不是每次访问网页时(IE工具->internet选项->浏览历史记录下的设置->检查所存网页的较新版本),则可能会出现程序不经过后台,直接从浏览器缓存里读数据的情况。
可以有三种解决方法:
1、在请求的参数后面加上时间,如:
这样由于每次请求的参数有所不同,程序不会从浏览器里面读取缓存。
2、在ajax请求时候加上cache:false的参数,如:
cache设置为 false 将不会从浏览器缓存中加载请求信息。
3、将ajax请求类型改为post,如:
请求类型改为post, 将不会从浏览器缓存中加载请求信息。
备注:
①GET请求,浏览器认为是等幂的,就是一个相同的URL只有一个结果[相同是指整个URL字符串完全匹配],所以第二次访问的时候如果URL字符串没
变化,浏览器直接使用第一次访问的结果。
②POST请求,浏览器则认为是一个变动性访问(浏览器认为POST的提交必定是有改变的),所以每次都是重新发送请求。
在使用jquery进行ajax操作时,如果Get请求的参数不变化,而且IE浏览器设置缓存不是每次访问网页时(IE工具->internet选项->浏览历史记录下的设置->检查所存网页的较新版本),则可能会出现程序不经过后台,直接从浏览器缓存里读数据的情况。
可以有三种解决方法:
1、在请求的参数后面加上时间,如:
$.ajax({ type : "get", url : "http://search.json?t="+new Date(), dataType : "json", success : function(json) { } });
这样由于每次请求的参数有所不同,程序不会从浏览器里面读取缓存。
2、在ajax请求时候加上cache:false的参数,如:
$.ajax({ type : "get", url : "http://search.json", dataType : "json", cache:false, success : function(json) { } });
cache设置为 false 将不会从浏览器缓存中加载请求信息。
3、将ajax请求类型改为post,如:
$.ajax({ type : "post", url : "http://search.json", dataType : "json", success : function(json) { } });
请求类型改为post, 将不会从浏览器缓存中加载请求信息。
备注:
①GET请求,浏览器认为是等幂的,就是一个相同的URL只有一个结果[相同是指整个URL字符串完全匹配],所以第二次访问的时候如果URL字符串没
变化,浏览器直接使用第一次访问的结果。
②POST请求,浏览器则认为是一个变动性访问(浏览器认为POST的提交必定是有改变的),所以每次都是重新发送请求。
相关文章推荐
- 缓存引起的session问题(ajax,js,jquery,asp.net,C#)
- jQuery中ajax的使用和缓存问题解决
- jQuery中ajax的使用和缓存问题解决
- JQUERY的AJAX请求缓存里的数据问题处理
- jquery 请求ie缓存,数据不更新的问题【ajax禁用缓存解决ie数据不更新的问题】
- jquery 请求ie缓存,数据不更新的问题【ajax禁用缓存解决ie数据不更新的问题】
- jQuery中ajax的使用与缓存问题的解决方法
- jQuery中ajax的使用和缓存问题解决
- 解析jquery中的ajax缓存问题
- JQUERY的AJAX请求缓存里的数据问题处理
- jquery 请求ie缓存,数据不更新的问题【ajax禁用缓存解决ie数据不更新的问题】
- jQuery.ajax 返回JSON数据 IE8 缓存问题
- 【郭林专刊】jQuery中ajax的使用和缓存问题解决
- jQuery中ajax的使用和缓存问题解决 $getjson 与$get都会被IE缓存
- jQuery ajax cache缓存问题
- jquery的ajax使用注意缓存问题
- 关于JQUERY里的AJAX缓存和同步异步问题
- jquery的ajax缓存问题
- jQuery中ajax的使用与缓存问题的解决方法
- jQuery中ajax的使用与缓存问题的解决方法