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