1.專案用IE瀏覽器開啟修改前端內容,後台資料修改了,但是前端頁面內容不變,詳細內容如下圖:
2.對參數進行修改操作
3.點選儲存後頁面重新整理後,內容仍不變
#4.沒有改變
5.用Google瀏覽器操作,內容已經改變。
6.前台程式碼
#
淡淡烟草味2017-05-27 17:42:35
這個問題之前有遇到過,當時在Safari下偶現,在ie下必線。 chrome正常
這是因為get請求的時候Safari和ie會緩存,導致修改完後呼叫的是上一次快取的結果。
解決方法是在ajax請求是設定cache:false,不快取
也可以全域設定
//不快取
$.ajaxSetup({ cache: false });
phpcn_u15822017-05-27 17:42:35
看題主的地址,都加了 rand=Math.random()
,所以這部分應該是沒有快取問題的。
不過問題是程式碼中的連結似乎只有 ...update
那個跟資料有關,但是這個 update 的行為到底是從伺服器更新到客戶端(取),還是從客戶端更新到伺服器(存)?從 update 本身常用的場景來看,這裡應該要取。但大 form 行為來看,它又應該是存…
先不說這個。從題主的描述,其實有兩個過程,一個是存,一個是取。通常問題會出現在取的時候,所以大家都猜測是由於快取引起的……不過通常不代表一定,所以應該做個排查
IE 裡存,Chrome 裡取
Chrome 裡存,IE 裡取
我們已知 Chrome 是正常的,那 IE 是存的時候不正常還是在取的時候不正常還是都不正常…就搞得明白了
然後怎麼辦……純前端我也不知道怎麼辦。如果排除了快取的問題,剩下的事情就要跟服務端配合一起來找問題了…
黄舟2017-05-27 17:42:35
我之前也遇到過這個問題,IE會緩存所有請求數據,對於非靜態數據請求響應添加header: Cache-Control: no-cache, no-store
大家讲道理2017-05-27 17:42:35
應該是快取的問題。 IE 和 Edge (up to 14; Edge 15 我沒測過…) 預設會快取 GET 的 XHR 內容。解決的辦法通常是
採用 POST 方式請求而非 GET (不建議…)
請求時加入隨機參數如 ?t=[[某个时间戳]]
@Donle 的 Cache-Control
方法沒有試過…