解決easyui-datagrid在ie中沒法reload問題

      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

相關文章
相關標籤/搜索