標籤:style blog http io os 使用 ar 資料 sp
easyui在頁面載入時,會自己主動填充datagrid中的資料,當加入、改動、刪除後,會觸發reload事件,對datagrid進行又一次載入。
這個過程在FireFox中沒有問題,用firebug觀察發現前後兩次http狀態代碼都是200,證明兩次都是從server又一次取的新資料,沒實用瀏覽器中的緩衝。
可到了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機制能消除緩衝,還有待研究。
因為瀏覽器安全色問題,總是存在這樣那樣的問題,僅僅要我們抱著一個必勝的信心就一定能解決這個問題。
上周還在糾結,這功能我能實現嗎?如今頁面擺在我面前,點個button響應一個事件,看著自己的勞動成果,我想說“我驕傲”。
解決easyui-datagrid在ie中無法reload問題