最近做设计的时候遇到一个小问题,当你用jquery的getjson函数从后台获取数据的时候,IE浏览器会自动设置缓存,如果此时你对数据进行修改的时候刷新页面,IE并不会在页面显示你修改后的数据,因为你刷新的时候IE浏览器会查找缓存并显示你修改前的数据,试了一些方法未果,最后在网上查了些资料终于解决了IE浏览器下的问题。
方法就是在你的请求的URL 后面设置个可变的参数,比如:
Java代码
$.getJSON("sortShow!sortShow?time="+new Date().getTime(),function(){});
开始我是直接这样写的
Java代码
$.getJSON("sortShow!sortShow,function(){});
所以刷新的时候IE 会显示上次的缓存,因此你必须提交新的数据,所以在后面加了个时间参数,即使你的后台没设置这个参数,但也不会报错。此时IE会重新向后台发出请求,类似的还有
math.random这个函数可以用。
近期偶尔间还发现了
IE浏览器的一个button bug,按钮原始的写法应该是这样写的:
,在这个按钮value是显示的文字,而新的button标签是这样定义的,写法更以前有很大的不同,
,这个按钮的值和显示在按钮上的文字是独立分开的。但是在IE浏览器下定义一个button按钮的时候却有个bug,IE取这个元素的值是按钮上显示的文字,也就是“这是按钮”,而正确的值应该是“值”,firefox和
chrome浏览器没有这个问题。
另外,我用的是jquery的$(“#button_id”).val()取的值,没有用原始的js取。不知道会不会不一样呢..
希望IE再能对标准支持的好一点。这样能为网页开发人员省正好多事啊,也不用每做个东西,就要开几个
浏览器去测试了。
标签:IE相关IE浏览器ajaxJSON缓存