前端頁面meta標簽設置緩存

配合客戶端寫的網(wǎng)頁;客戶端需求是無網(wǎng)絡的情況下要使用緩存的網(wǎng)頁;但是發(fā)現(xiàn)服務端更新完文件后并且ETag值發(fā)生了更改但是前端頁面并沒有更新;廢話不說;先走代碼;該代碼是讓客戶端在有網(wǎng)絡的情況下每次校驗服務端是否發(fā)生更改;

<meta http-equiv="Cache-control" content="no-cache,max-age=0, must-revalidate,no-store">
    <meta http-equiv="Pragma" content="no-cache" />
    <meta http-equiv="Expires" content="0" />
    <meta http-equiv="Cache" content="no-cache">

瀏覽器的緩存機制

  1. 當前緩存的文件是否過期;
  2. 服務器中文件是否有改動

判斷緩存過期以及文件的變動

文件變動后文件的Etag值會發(fā)生更改;客戶端先問服務器Etag值是否發(fā)生更改;然后決定是否更新當前文件;

設置過期,在請求頭中設置字段

Http1.0
  1. Pragma:它用來向后兼容只支持 HTTP/1.0 協(xié)議的緩存服務器,那時候 HTTP/1.1 協(xié)議中的 Cache-Control 還沒有出來
Http1.1
  1. Expires:相應頭過期時間;Cache-control中設置max-age;則該屬性會被忽略
  2. Cache-control;該字段的優(yōu)先級要比Expires優(yōu)先級高

Cacha-control常見的取值:

  • no-chche:表示無論服務端有沒有設置Cache-control,都必須重新追根到源服務器進行校驗,源服務器未變化返回304;

  • must-revalidate:告訴瀏覽器/緩存服務器;在本地文件過期之前可以使用本地文件;本地文件一旦過期需要去源服務器進行有效性校驗;如果有緩存服務器且該資源未過有效期則命中緩存服務器并返回200;如果過期切源服務器未發(fā)生更改;則教研后返回304;

  • max-age:緩存的內容將在多少秒后失效,相對于請求時間來說的;max-age=0便是無論服務端如何設置;在重新獲取資源之前;先檢驗ETag/Last-Modified;在設置max-age=0或no-cache后;在資源無更新的情況下訪問都會返回304

  • private:客戶端可以緩存

  • public:客戶端和代理服務器都可緩存

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 瀏覽器對于請求資源, 流程如圖所示: 可以看到瀏覽器的緩存機制分為兩個部分: 1、當前緩存是否過期? 2、服務器中...
    zhoulujun閱讀 1,292評論 0 3
  • 網(wǎng)絡特有的延遲以及數(shù)據(jù)傳輸?shù)某杀?,制約互聯(lián)網(wǎng)快速獲取Web資源。為此,HTTP協(xié)議引入緩存以空間換時間,使瀏覽器緩...
    大頭8086閱讀 3,207評論 2 12
  • 本文內容大多參考《圖解HTTP》一書 一. 認識代理服務器 所以講緩存為什么要先扯代理服務器?別急,讓我們看一下一...
    流光號船長閱讀 2,116評論 0 10
  • 參考《深入理解瀏覽器的緩存機制》進行整理 前言 緩存可以說是性能優(yōu)化中簡單高效的一種優(yōu)化方式了。一個優(yōu)秀的緩存策略...
    琢磨先生lf閱讀 809評論 1 1
  • 《人性的弱點》這本書是我最近在看的,看得很慢,學到的東西也很多。人性當中有著很多的弱點。不會批評與贊賞,就是其中的...
    暫無簡介0閱讀 1,067評論 0 3

友情鏈接更多精彩內容