码迷,mamicode.com
首页 > 其他好文 > 详细

解决easyui-datagrid在ie中无法reload问题

时间:2014-06-13 23:55:06      阅读:332      评论:0      收藏:0      [点我收藏+]

标签:easyui   datagrid   url   缓存   ie   

      easyui在页面加载时,会自动填充datagrid中的数据,当添加、修改、删除后,会触发reload事件,对datagrid进行重新加载。

   这个过程在FireFox中没有问题,用firebug观察发现前后两次http状态码都是200,证明两次都是从服务器重新取的新数据,没有用浏览器中的缓存。

   可到了IE中,发现第一次加载时的http状态码是200,reload时的http状态码是304,证明reload时的数据是从缓存中读取的,造成的结果是添加后datagrid表格不更新。

   方案一:,在url后加时间戳,使第一次加载和reload中访问的url不一致,使系统无法使用IE缓存,可通过观察状态码发现,时间戳是加上了,但两次访问的url还是相同,无法消除缓存。

   方案二:用类似于在<head>中加

<META HTTP-EQUIV="pragma" CONTENT="no-cache"> 
<META HTTP-EQUIV="Cache-Control" CONTENT="no-cache, must-revalidate"> 
<META HTTP-EQUIV="expires" CONTENT="Wed, 26 Feb 1997 08:21:57 GMT">
这样的表头的方式清除缓存,结果还是失败了。

    最后大哥周响出马,提出方案三:把提交方法method由get改为了post,问题解决。

<table id="tt" " title="权限管理" class="easyui-datagrid" style="width: auto; height: 400px;" idfield="itemid" pagination="true" iconcls="icon-save" remoteSort="false" data-options="rownumbers:true,
        url:'JSONData.ashx',pageSize:5,pageList:[5,10,15,20],
        method:'post',toolbar:'#tb' ," fitcolumns= "true" striped="true" singleselect="true">
        <thead>
            <tr>
               <th  data-options="field:'JID',width:20",sortable:"true"> 序号</th>
               <th  data-options="field:'jurisdictionName',width:20",sortable:"true">权限</th>
            </tr>
        </thead>
 </table>
            至于为什么post机制能消除缓存,还有待研究。

    由于浏览器兼容问题,总是存在这样那样的问题,只要我们抱着一个必胜的信心就一定能解决问题。

    上周还在纠结,这功能我能实现吗?现在页面摆在我面前,点个按钮响应一个事件,看着自己的劳动成果,我想说“我骄傲”。

解决easyui-datagrid在ie中无法reload问题,布布扣,bubuko.com

解决easyui-datagrid在ie中无法reload问题

标签:easyui   datagrid   url   缓存   ie   

原文地址:http://blog.csdn.net/quwenzhe/article/details/30228663

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!