EasyUI datagrid在ie下reload失敗的問題

#EasyUI datagrid在ie下reload失敗的問題

###問題 最近使用EasyUI開發後臺系統,測試時發現個奇葩的問題,$('dg').datagrid('reload'); 從新加載表格數據時,ie下一點反應都沒有。後來發現其實並非沒有反應,而是瀏覽器使用了緩存。html

###解決方案 網上網友總結出來的解決方案有如下幾種:前端

  1. 在url後加時間戳,使第一次加載和reload中訪問的url不一致,使系統沒法使用IE緩存。經過測試發現,EasyUI請求時後面已經自帶一串隨機數_145232xxx,可是ie仍是會使用緩存。後來我在請求的js中爲url加上rand=xxx(Math.rand()生成的隨機數)就不會使用緩存了。(我測試了從ie8到ie11)瀏覽器

  2. 用相似於在<head>中加<meta>來清除緩存:緩存

     

<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">測試

```

很不幸,跟不少網友同樣,這個方法我也失敗了。:(url

  1. 將datagrid的load對應的method聲明爲‘POST’,這個解決方法最快。可是有有幾個問題:
    • 要是該服務端接口不支持POST方式就歇菜了。
    • 要是服務端接口本身能控制,這種爲了前端妥協的方式,會致使接口一點也不RESTful!要知道RESTful接口對於查詢的設計基本上都是GET方式的。

###總結 因此說仍是第一種方法,在url本身加隨機數好用,原諒我代碼潔癖不想改服務端接口 _(:з」∠)_。.net

###參考設計

  1. http://blog.csdn.net/quwenzhe/article/details/30228663
相關文章
相關標籤/搜索