您的位置:首页 > Web前端 > JQuery

jquery的ajax的缓存问题

2014-12-19 17:39 162 查看
以下主要描述如何解决Jquery ajax的缓存问题。

在使用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的提交必定是有改变的),所以每次都是重新发送请求。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: