IE下的缓存和cookie有一个问题,在清除cookie或者缓存之后,必须关闭IE浏览器,才能生效。例如一个网站登陆后,你选择记住密码,一般会用cookie机制记住你的密码,清除IE的cookie和缓存之后,在关闭浏览器之前你依然可以访问该网站。而在chrome和firefox中就不会有这种情况。
除此之外,jquery的$.ajax()在IE下也会有一个问题。
如
$.ajax({
url: 'test.index.do',
data:{
mydata:data
}
});
在第二次调用这个方法的时候,其实是不会再去后台访问“test.index.do”这个请求的,而是直接使用之前的缓存结果,在chrome和firefox中就不会有这个问题。
解决该问题有两个方法:
一、给访问地址后加随机数:
$.ajax({ url:'test.index.do?__v=' + Math.random(), data:{ mydata:data } })
二、给$.ajax添加cache:false参数:
$.ajax({
url:'test.index.do?__v=' + Math.random(),
cache: false,
data:{
mydata:data
}
})
cache 参数在type为javascript、jsonp类型默认的是false,而json、html等其他类型中默认的是true。