搜尋

首頁  >  問答  >  主體

javascript - 專案用IE瀏覽器開啟修改前端內容,後台資料修改了,但是前端頁面內容不變,用谷歌瀏覽器測試前端頁面可以刷新,求大神解決。

1.專案用IE瀏覽器開啟修改前端內容,後台資料修改了,但是前端頁面內容不變,詳細內容如下圖:


2.對參數進行修改操作


3.點選儲存後頁面重新整理後,內容仍不變

#4.沒有改變


5.用Google瀏覽器操作,內容已經改變。

6.前台程式碼

#
过去多啦不再A梦过去多啦不再A梦2779 天前983

全部回覆(9)我來回復

  • phpcn_u1582

    phpcn_u15822017-05-27 17:42:35

    緩存麼,清下快取。

    回覆
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-27 17:42:35

    多半是由快取引起的,你查詢這部分資訊的介面有使用隨機參數保證使用的不是快取資料嗎

    回覆
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-27 17:42:35

    這個問題之前有遇到過,當時在Safari下偶現,在ie下必線。 chrome正常
    這是因為get請求的時候Safari和ie會緩存,導致修改完後呼叫的是上一次快取的結果。

    解決方法是在ajax請求是設定cache:false,不快取

    也可以全域設定
    //不快取
    $.ajaxSetup({ cache: false });

    回覆
    0
  • phpcn_u1582

    phpcn_u15822017-05-27 17:42:35

    看題主的地址,都加了 rand=Math.random(),所以這部分應該是沒有快取問題的。

    不過問題是程式碼中的連結似乎只有 ...update 那個跟資料有關,但是這個 update 的行為到底是從伺服器更新到客戶端(取),還是從客戶端更新到伺服器(存)?從 update 本身常用的場景來看,這裡應該要取。但大 form 行為來看,它又應該是存…

    先不說這個。從題主的描述,其實有兩個過程,一個是存,一個是取。通常問題會出現在取的時候,所以大家都猜測是由於快取引起的……不過通常不代表一定,所以應該做個排查

    1. IE 裡存,Chrome 裡取

    2. Chrome 裡存,IE 裡取

    我們已知 Chrome 是正常的,那 IE 是存的時候不正常還是在取的時候不正常還是都不正常…就搞得明白了

    然後怎麼辦……純前端我也不知道怎麼辦。如果排除了快取的問題,剩下的事情就要跟服務端配合一起來找問題了…

    回覆
    0
  • phpcn_u1582

    phpcn_u15822017-05-27 17:42:35

    看你的IE的控制台是不是有報錯

    回覆
    0
  • 黄舟

    黄舟2017-05-27 17:42:35

    我之前也遇到過這個問題,IE會緩存所有請求數據,對於非靜態數據請求響應添加header: Cache-Control: no-cache, no-store

    回覆
    0
  • 仅有的幸福

    仅有的幸福2017-05-27 17:42:35

    F12看看有沒有報錯 沒有報錯 清空快取

    回覆
    0
  • 世界只因有你

    世界只因有你2017-05-27 17:42:35

    shift+f5強制刷新緩存,多刷幾遍

    回覆
    0
  • 大家讲道理

    大家讲道理2017-05-27 17:42:35

    應該是快取的問題。 IE 和 Edge (up to 14; Edge 15 我沒測過…) 預設會快取 GET 的 XHR 內容。解決的辦法通常是

    • 採用 POST 方式請求而非 GET (不建議…)

    • 請求時加入隨機參數如 ?t=[[某个时间戳]]

    • @Donle 的 Cache-Control 方法沒有試過…

    回覆
    0
  • 取消回覆