首先说明一下IE的这个“亮点”,IE有个缓存机制,对请求的url进行判断,发现短时间内请求的url相同,则使用缓存的数据,而不是去重新向服务器获取一次数据。数据缓存也有好处,但对于需要经常去后台获取数据更新的需求来说,这就是个麻烦了。
提问:那怎么解决这个问题呢?
分析:既然是对相同的url认为是重复请求,那我就想办法每次请求的url值都不相同,同时还保证是我要的数据。我们采用在url中增加一个无用的参数,且这个参数每次都在变(时间或随机数!)。
这里举个简单的例子,从后台获取实时时间。普通的做法如下,此时在chrome、FireFox上不停的向后台请求获取实时数据,会发现页面上的时间会不停的改变。但换到IE浏览器下,第一次点击时间会出现,当不断重复点击时,时间仍旧停留在第一次获取到的时间上。
一:在url后面加个随机数
$.ajax({
type: "GET",
url: "/platform/lang?random="+Math.random(),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result){},
error:function(result){}
});
二:在url后面加时间戳
$.ajax({
type: "GET",
url: "/platform/lang?timestamp="+new Date().getTime(),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result){},
error:function(result){}
});
以上是我采用的方法,大家也可以参考一下一篇文章,没有尝试:
https://dacoolbaby.iteye.com/blog/1938440
网友评论