常常會遇到系統資源已經更新(例如: js, css) 但是使用者看到的畫面還是舊的。甚至於已經在後端寫好每次進到這個畫面需要觸發的判斷,卻因為畫面已經被User 端快取,導致行為不正常。身為一個專業的工程師,一定要搞懂其中的原理。
2024-03-07
置頂文章
常常會遇到系統資源已經更新(例如: js, css) 但是使用者看到的畫面還是舊的。甚至於已經在後端寫好每次進到這個畫面需要觸發的判斷,卻因為畫面已經被User 端快取,導致行為不正常。身為一個專業的工程師,一定要搞懂其中的原理。
發現全域的Cache-Control 設定會導致Action 沒有被正確觸發,而改用後端方式偵測來自Brower 的Request 資源副檔名,並加以為各別檔案設定快取。
原本這一篇只是要記錄Cache 的使用,後來一並研究其他不同的資料儲存方式:Seesion、Cache、Cookie、ViewData & ViewBag。
簡單來說,他們有各自適合的使用場景跟生命週期,在不同情況所使用不同的方案,以下一一進行介紹。