解决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     }

 

 

posted on 2012-08-21 10:46  zhuyanyan  阅读(411)  评论(0编辑  收藏  举报