解决IE和firefox的缓存问题
1) 火狐浏览器(3.6.6)和谷歌浏览器(5.0.375.86)的默认处理方式相同,每次重复访问同一url,都会向服务器重新请求,不设置缓存相当于禁用了缓存。
2) IE(6.0.3790.3959)的默认处理方式(如图中的设置)则相反,每次重复访问同一url,都不会向服务器重新请求,不设置缓存相当于启用了缓存。
这在我们开发web程序是,代码的通用性十分重要.
比如我们在使用ajax进行异步更新页面时,
不同的浏览器会出现不同的效果,
因此我们需要对浏览器的缓存进行统一化,
即统一设置为禁用缓存、或启用缓存。
ajax在不同浏览器通用的办法是在ajax代码里面,
添加属性cache,将cache设置成false或者true,如下代码
下面是jsp页面里用于更新一个表格数据的ajax
1 2 //更新“异常流程表” 3 function updataStatusTable() 4 { 5 $.ajax({ 6 cache : false, 7 type:'get', 8 dataType:'json', 9 url:'serviceStatus', 10 contentType:'application/json;charset=UTF-8', 11 data:{serviceType:$("#serviceType").val()}, 12 13 success:function(data){ 14 var string_table="<tr bgcolor='DAE9FC' align='center'><td>异常规则号</td><td>当前状态</td><td>下一个状态</td><td>操作</td></tr>"; 15 for(var i=0;i<data.count;i++) 16 { 17 var id=data.ids[i]; 18 string_table=string_table+"<tr bgcolor='#FFFFFF' align='center'><td>"+id+"</td><td>" 19 +data.preDesc[i]+"</td><td>"+data.nextDesc[i]+"</td><td>" + 20 "<input type='button' value='删除'onclick='deleteRules("+id+")'/></td></tr>"; 21 } 22 string_table=string_table; 23 $("#stateTable").html(string_table); 24 }, 25 26 error: function() { 27 alert("异常流程表获取失败"); 28 } 29 }); 30 }