就我以前認知

以為回傳資料不用特別擔心什麼問題

可是就在

最近發生了問題,就此打破我對回傳前後端的資料時的看法

---------------------------環境介紹---------------------------

本人是用MVC架構 使用angularJS 

傳輸前後端資料使用 泛型檔 (.ashx)

前後端的傳輸媒介為 (ajax)

若環境不同,可能要自行改變寫法

---------------------------環境介紹​​​​​​​---------------------------

我知道在網頁上有分暫存的資料跟新的資料的存取

就是非常簡單的在head處加上

<meta http-equiv="pragma" content="no-cache" />

 

這樣每一次進入網站時系統不會抓取舊的資料顯示,會每一次去抓取新的資料來做顯示

我以為這件事就這樣解決了

但是往往只是我以為......

 

今天當我在傳輸前後端資料時,我需要把一段文字存進JSON檔裡面

每一次編輯就直接更新JSON的資料

問題來了,今天我更新時,JSON的資料確實有改變

也更新了,網頁上的資訊也即時更新了(angularJS可以不用重整即顯示最新資訊)

但當我按下F5的時候

(我的程式有寫每次重整即去抓取資料)

我的資料返回到改變前的內容

無論重複F5幾次都一樣

後來發現...原來電腦內也有分暫存記憶檔

就是常常聽到的cache

---------------------------解決方式​​​​​​​---------------------------

在後台做運作程式時

會回傳資料在前端中

而在回傳前 增加

context.Response.AddHeader("cache-control", "no-store"); //電腦中的暫存每一次抓取新的資料

這樣回傳出來的資料都會是最新的

---------------------------解決方式​​​​​​​---------------------------

個人認知,有錯誤請輕噴,新手程式助理設計師XD

(下台一鞠躬)

arrow
arrow
    文章標籤
    ajax 回傳 資料 cache
    全站熱搜

    Jungle 發表在 痞客邦 留言(0) 人氣()