一、处理方法介绍
在IE浏览器下,$.getJSON()
函数在执行GET请求时会自动开启本地缓存,这就会导致在同一页面中多次执行该函数时,浏览器会优先从缓存中获取数据,而不是发起新的请求并获取最新数据,因此需要进行缓存处理来避免这个问题。解决的方法是在请求URL后面添加一个时间戳参数或者改变缓存控制头。
二、添加时间戳参数方法
在每次请求时在URL中添加一个不同的时间戳参数即可,这样保证每次请求时URL是不同的,从而强制浏览器获取最新数据而不是从本地缓存中读取数据。下面是示例代码:
var timestamp = new Date().getTime();
$.getJSON('url?timestamp=' + timestamp, function(data) {
// 处理数据的代码
});
三、改变缓存控制头方法
如果服务端支持的话,通过修改缓存控制头也可以解决该问题。添加以下响应头信息:
Cache-Control:no-cache, must-revalidate
Expires:-1
使浏览器不得缓存该请求。下面是一个示例:
$.ajaxSetup({
cache: false
});
$.ajax({
url: 'url',
dataType: 'json',
success: function(data) {
// 处理数据的代码
}
});
以上方法即为解决IE下$.getJSON()
的缓存问题的常用方法,可根据不同场景采用不同的方式处理缓存问题。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:ie下jquery.getJSON的缓存问题的处理方法 - Python技术站