国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

javascript 前端優化-瀏覽器緩存

elisa.yang / 2236人閱讀

摘要:協商緩存當瀏覽器判斷不是強緩存,就會發向服務器發請求,判斷是否是協商緩存。如果是,服務器會返回,瀏覽器從緩存中加載。若這兩個字段相同,則代表資源沒有變化,服務器返回,瀏覽器從緩存中加載。

瀏覽器緩存作用

加快頁面打開速度

減輕服務器壓力

減少網絡損耗

瀏覽器緩存有兩種方式:
1、mate標簽
2、header頭

mate標簽控制
1、content-type(文檔內容類型:用于設定文檔的類型和字符集)
2、expires(期限:可以用于設定網頁的到期期限)
3、pragma(cashe模式:即是否從緩存中訪問網頁內容)
4、refresh(刷新:等待一定時間自動刷新或跳轉到其他url)

// 文檔類型


// 必須是 GMT 格式


// 是否設置緩存


// 等待一定時間自動跳轉
*說了這么多 mate兼容性不靠譜!所以說基本沒用

接下來說點有用的,瀏覽器會通過Response header信息,來確認是否緩存,怎么緩存。

頭信息緩存機制有分兩種

強緩存

協商緩存

先說強緩存:

在控制臺資源加載 size欄我們會看到架子啊資源的大小,如果是緩存直接在本地讀取 (from memory cache 來自內存緩存)(from disk cache 來自磁盤緩存)

瀏覽器加載資源時先判斷頭信息是否包含Cache-Control和Expires這兩個屬性,Expires是http1.0,Cache-Control是http1.1,從版本上來說肯定是Cache-control更強一些,畢竟不能越升級越low,約定也是兩個同時存在Cache-control優先級更高。

截圖為js的Response header信息,包含Cache-control和Expires,但從字面上我們能看出Expires設置了一個時間,我們猜它應該是過期時間,擦居然猜對了。我們再猜一下Cache-control:一坨字段,max-age=31536000,我猜也是過期時間,哈哈又猜對了,不逗比了挨個說說

Expires:設置瀏覽器緩存時間,時間是絕對時間,從設置的值上可以看出是個日期,瀏覽器收到Response時看看有沒有Expires字段有的話緩存頭信息和資源,再次請求時查看緩存時間過沒過,沒過在緩存拿出來,過了重新請求。

Cache-control:這個承載值就多了

max-age=xxx:緩存的內容將在 xxx 秒后失效,這個時間是個時間間隔相對時間。
public:所有內容都將被緩存(客戶端和代理服務器都可緩存)
private:內容只緩存到私有緩存中(僅客戶端可以緩存,代理服務器不可緩存)
no-cache:必須先與服務器確認返回的響應是否被更改,然后才能使用該響應來滿足后續對同一個網址的請求。因此,如果存在合適的驗證令牌(ETag),no-cache 會發起往返通信來驗證緩存的響應,如果資源未被更改,可以避免下載
no-store:所有內容都不會被緩存或 Internet 臨時文件中
must-revalidation/proxy-revalidation:如果緩存的內容失效,請求必須發送到服務器/代理以進行重新驗證

服務端如何判斷緩存已失效?

服務端通過If-Modified-Since(Last-Modified)和If-None-Match(Etag)這兩個屬性的值來判斷緩存是否失效的。

2、協商緩存:當瀏覽器判斷不是強緩存,就會發向服務器發請求,判斷是否是協商緩存。如果是,服務器會返回304Not Modified,瀏覽器從緩存中加載。那什么又是協商緩存呢?

Last-Modified和If-Modified-Since字段:

1、瀏覽器第一次向服務器發請求,服務器返回資源并在response header加上Last-Modified字段,表示資源最后修改的時間。
2、瀏覽器再次請求這個資源時,請求頭會加上If-Modified-Since字段。若這兩個字段一樣,說明資源沒有修改過,返回304Not Modified,瀏覽器從緩存中獲取資源。若這兩個字段不一樣,說明資源修改過,服務器正常返回資源。

ETag、If-None-Match:

但有時候服務器上資源有變化,單最后修改時間沒更新,則引出下面兩個字段。
1、瀏覽器第一次向服務器請求,服務器返回資源并在response header上加ETag字段。表示資源本身,資源有變化,則該字段有變化。
2、瀏覽器再次向服務器請求這個資源時,請求頭攜帶If-None-Match字段。若這兩個字段相同,則代表資源沒有變化,服務器返回304Not Modified,瀏覽器從緩存中加載。若兩個字段不同,證明資源有變動,服務器正常返回資源。

參考:
https://juejin.im/post/5a7a8e...
https://juejin.im/post/59c602...

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/100511.html

相關文章

  • 前端優化 - 收藏集 - 掘金

    摘要:雖然有著各種各樣的不同,但是相同的是,他們前端優化不完全指南前端掘金篇幅可能有點長,我想先聊一聊閱讀的方式,我希望你閱讀的時候,能夠把我當作你的競爭對手,你的夢想是超越我。 如何提升頁面渲染效率 - 前端 - 掘金Web頁面的性能 我們每天都會瀏覽很多的Web頁面,使用很多基于Web的應用。這些站點看起來既不一樣,用途也都各有不同,有在線視頻,Social Media,新聞,郵件客戶端...

    VincentFF 評論0 收藏0
  • WEB前端性能優化常見方法

    摘要:前端是應用服務器處理之前的部分,前端主要包括等各種資源,針對不同的資源有不同的優化方式。常見方法合并多個文件和文件,利用整合圖像,使用在實際的頁面嵌入圖像數據,合理設置緩存等。 web前端是應用服務器處理之前的部分,前端主要包括:HTML,CSS,javascript,image等各種資源,針對不同的資源有不同的優化方式。 內容優化 (1)減少HTTP請求數:這條策略是最重要最有效...

    miracledan 評論0 收藏0
  • 不能錯過的web前端性能優化總結

    摘要:是具有此屬性的域名不需要用戶點擊鏈接就在后臺解析,而域名解析和內容載入是串行的網絡操作,所以這個方式能減少用戶的等待時間,提升用戶體驗。 web前端性能優化主要分為以下幾個板塊: 加載優化 DNS預解析 合并img、css、javascript文件,減少http請求 緩存一切可緩存資源 使用長Cache 使用外聯式引用css、javascript文件 壓縮HTML、css、jav...

    wums 評論0 收藏0
  • 不能錯過的web前端性能優化總結

    摘要:是具有此屬性的域名不需要用戶點擊鏈接就在后臺解析,而域名解析和內容載入是串行的網絡操作,所以這個方式能減少用戶的等待時間,提升用戶體驗。 web前端性能優化主要分為以下幾個板塊: 加載優化 DNS預解析 合并img、css、javascript文件,減少http請求 緩存一切可緩存資源 使用長Cache 使用外聯式引用css、javascript文件 壓縮HTML、css、jav...

    宋華 評論0 收藏0
  • 性能優化

    摘要:性能優化如何進行網站性能優化方面減少請求合并文件精靈減少查詢查詢完成之前瀏覽器不能從這個主機下載任何任何文件。 性能優化 如何進行網站性能優化 content方面 減少HTTP請求:合并文件、CSS精靈、inline Image 減少DNS查詢:DNS查詢完成之前瀏覽器不能從這個主機下載任何任何文件。方法:DNS緩存、將資源分布到恰當數量的主機名,平衡并行下載和DNS查詢 避免...

    pakolagij 評論0 收藏0

發表評論

0條評論

elisa.yang

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<