cookie
localStorage和sessionStorage
memory cache 和 disk cache
還有其他一些浏覽器緩存,如WebSQL、IndexDB等等,不常用就不分析了。
2. 浏覽器緩存特點分析2.1. cookie緩存cookie緩存由服務器端生成,一般用來保存session信息,隻要設計合理,一般不會帶來一緻性問題。
2.2. localStorage 和 sessionStoragelocalStorage是永久緩存,如果升級前端程序涉及緩存鍵值改變,應在頁面加載時調用清理或重新設置緩存内容的JS代碼。
sessionStorage是跟随當前浏覽器窗口的數據緩存,關閉重新打開浏覽器會自動清空。
2.3. memory cache 和 disk cachememory cache是浏覽器内部控制的,無法改變,一般也不會帶來副作用。
disk cache是重點關注的浏覽器端的資源文件緩存。
3. 控制disk cacheHttp Response Headers中通過cache-control來控制浏覽器采取不同的緩存策略。響應頭參數可以通過Web服務器來配置。這裡以Nginx的配置文件為例。
3.1. private(默認)
server {
...
add_header Cache-Control private; (或者不設置,默認為private)
...
}
private 意思是使用浏覽器緩存,它配合expires、last-modified等參數來判斷資源文件是否需要重新下載。
3.2. no-cache(推薦)
server {
...
add_header Cache-Control no-cache;
...
}
no-cache 并非不使用緩存,而是不直接使用緩存,每次都會向服務器請求響應頭,通過對比ETag判斷資源是否發生變動,如果沒有變動(相應結果304),則使用本地緩存。所以這是個在性能和一緻性比較平衡的選項。
3.3. no-store
server {
...
add_header Cache-Control no-store;
...
}
no-store是讓浏覽器完全不使用緩存,不管資源是否變動,都向服務器請求重新下載資源文件。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!