easyui在页面载入时,会本身主动填充datagrid中的数据,当加入、改动、删除后,会触发reload事件,对datagrid进行又一次载入。html
这个过程在FireFox中没有问题,用firebug观察发现先后两次http状态码都是200,证实两次都是从server又一次取的新数据,没实用浏览器中的缓存。浏览器
可到了IE中,发现第一次载入时的http状态码是200,reload时的http状态码是304,证实reload时的数据是从缓存中读取的,形成的结果是加入后datagrid表格不更新。缓存
方案一:,在url后加时间戳,使第一次载入和reload中訪问的url不一致,使系统没法使用IE缓存,可经过观察状态码发现,时间戳是加上了,但两次訪问的url仍是一样,没法消除缓存。post
方案二:用相似于在<head>中加ui
<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,问题解决。url
<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机制能消除缓存,还有待研究。
由于浏览器兼容问题,老是存在这样那样的问题,仅仅要咱们抱着一个必胜的信心就必定能解决这个问题。spa
上周还在纠结,这功能我能实现吗?现在页面摆在我面前,点个button响应一个事件,看着本身的劳动成果,我想说“我骄傲”。
code