在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

關于瀏覽器緩存最詳細解析

jf_f8pIz0xS ? 來源:掘金 ? 作者:foolBird ? 2021-04-16 16:01 ? 次閱讀

簡述

瀏覽器緩存即 http 緩存,將請求過的數據(html、css、js)存在瀏覽器(本地磁盤)中,當再次訪問這些資源時可以從本地直接加載,減少服務端請求

服務端通過設置 http 響應頭來決定緩存策略(緩存方式)

緩存流程

第一次請求需要的資源,服務器返回資源的同時在 response hearder 響應頭中添加了緩存策略,告訴瀏覽器緩存規則(比如以何種方式緩存,緩存信息。。.。。.),此時就進行緩存了

第二次如果是請求相同資源,那么就會檢查緩存里面是否有相應資源,有的話直接取用,具體方式請看后續

緩存位置

先談談緩存都會存在哪,然后引出緩存方式進一步說明

Service Worker

可以讓我們自由控制緩存哪些文件、如何匹配/讀取緩存,并且緩存是持續性的

離線緩存調用的就是 Service Worker

Memory Cache

內存中的緩存,關閉頁面就會失效

Disk Cache

硬盤中的緩存

資源存進硬盤的情況

大文件(大概率)

此時內存利用率較高

Push Cache

推送緩存:以上三種緩存都沒命中時,才啟用

它只在會話(Session)中存在,會話結束就會釋放,緩存時間很短

如果以上四種緩存都沒被命中,就只能發起請求了。所以為了性能考慮,選擇好緩存方式極為重要

緩存方式

緩存方式就兩種

強緩存(默認優先)

協商緩存(協商,也就是商量的意思)

先介紹一個響應頭中重要的值 Cache-Control,用于控制網頁緩存,有如下主要取值

public:響應可以被客戶端和代理服務器緩存

private(默認取值):響應只有客戶端可以緩存

no-cache:直接進入協商緩存階段

no-store:不進行任何緩存

max-age = xxx(xxx 代表數字):緩存內容在 xxx 時間后失效

must-revalidate:告訴瀏覽器

瀏覽器查看響應頭的方法(新版 edge 為例):右鍵選擇 “檢查”,進入開發者模式,選擇 “網絡” ,選中具體選項(如果沒有可以 f5 刷新頁面),點擊 “標頭”

強緩存

概念:檢查強緩存,不發送 http 請求直接從緩存里讀取資源。一般強緩存都會設置有效時間,過期就失效

觸發條件,Cache-Control 的值 max-age = xxx

響應頭 Expires 存儲緩存過期時間(如果修改本地時間會造成緩存失效)

協商緩存

概念:需要攜帶緩存標識(tag)發送 http 請求,由服務器判斷是否使用緩存。服務端會進行判斷,若資源已發生變化,則返回新資源,否則告訴瀏覽器啟用緩存即可

觸發條件(兩個)

強緩存過期

Cache-Control 的值包含 no-cache

緩存標識由響應頭 Last-Modified、ETag 決定(簡述一下)AX

Last-Modified 用于記錄資源最后修改時間,瀏覽器再次請求時用來對比時間,以此判斷資源是否變化

ETag存儲一個字符串(類似標識符),只要資源修改了標識符就會變動,以此判斷資源是否變化

用戶操作對緩存的影響

地址欄輸入網址:瀏覽器會查找

點擊刷新按鈕或按 f5 刷新:會使用緩存

ctrl+f5 刷新:跳過緩存,直接請求新資源
編輯:lyn

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 緩存
    +關注

    關注

    1

    文章

    245

    瀏覽量

    27047
  • 瀏覽器
    +關注

    關注

    1

    文章

    1040

    瀏覽量

    36097
收藏 人收藏

    評論

    相關推薦
    熱點推薦

    老電視如何安裝瀏覽器

    2017年購買的夏普老電視,1.5G+8G存儲,網上下的瀏覽器APK文件在電視內打開就彈出“解析程序包出現問題”。 未知來源選項已打開,存儲空間清空到只剩下三個應用(只占用300M左右),基本可
    發表于 06-01 18:57

    nginx中強緩存和協商緩存介紹

    緩存直接告訴瀏覽器:在緩存過期前,無需與服務通信,直接使用本地緩存
    的頭像 發表于 04-01 16:01 ?282次閱讀

    edge瀏覽器識別 latex語法插件

    默認的瀏覽器是沒有latex識別功能的,容易顯示為亂碼或者源碼,無法正常識別。本插件需要在瀏覽器的擴展程序菜單下安裝,能在edge下完美運行。本插件是免費插件。
    發表于 03-17 18:03 ?0次下載

    E2000 Speedometer測試瀏覽器性能

    E2000 Speedometer****測試瀏覽器性能 Version:V1.0 日期:2024-12-5 1、瀏覽器基準測試Speedometer Speedometer是一款專為Web瀏覽器
    發表于 01-10 21:33

    2024年12月瀏覽器市場份額報告:谷歌Chrome穩居榜首

    根據市場調查機構Statcounter最新發布的權威報告,2024年12月全球瀏覽器市場份額排行榜中,谷歌Chrome瀏覽器再次以卓越的表現穩居首位。數據顯示,Chrome的市場占有率高達68.38
    的頭像 發表于 01-02 14:58 ?1409次閱讀

    訊飛星火瀏覽器插件全新升級

    時刻陪伴,星火插件讓你的瀏覽器變成真正的生產力工具。
    的頭像 發表于 12-25 09:48 ?944次閱讀

    HTTP緩存頭的使用 本地緩存與遠程緩存的區別

    HTTP緩存頭是一組HTTP響應頭,它們控制瀏覽器和中間代理服務如何緩存網頁內容。合理使用HTTP緩存頭可以顯著提高網站的加載速度和性能,
    的頭像 發表于 12-18 09:41 ?388次閱讀

    Web緩存的類型及功能分析

    速度,降低了延遲,并提高了網站的可用性。 Web緩存的類型 Web緩存主要分為以下幾種類型: 瀏覽器緩存(Browser Cache) 功能 :瀏覽
    的頭像 發表于 12-18 09:35 ?682次閱讀

    AWTK 最新動態:支持瀏覽器控件

    導讀AWTK瀏覽器控件,基于webview項目實現,將瀏覽器嵌入到AWTK應用程序中,讓開發者可以方便的集成在線幫助和調用地圖等功能。awtk-widget-web-view是基于webview實現的AWTK瀏覽器控件,使得AW
    的頭像 發表于 11-20 01:05 ?565次閱讀
    AWTK 最新動態:支持<b class='flag-5'>瀏覽器</b>控件

    寫一個Chrome瀏覽器插件

    一、什么是瀏覽器插件 瀏覽器插件是依附于瀏覽器,用來拓展網頁能力的程序。插件具有監聽瀏覽器事件、獲取和修改網頁元素、攔截網絡請求、添加快捷菜單等功能。使用
    的頭像 發表于 11-18 17:12 ?946次閱讀
    寫一個Chrome<b class='flag-5'>瀏覽器</b>插件

    跨域問題是由瀏覽器的同源策略造成的

    瀏覽器
    jf_62215197
    發布于 :2024年08月27日 07:51:42

    不只是前端,后端、產品和測試也需要了解的瀏覽器知識(二)

    繼上篇《 不只是前端,后端、產品和測試也需要了解的瀏覽器知識(一)》介紹了瀏覽器的基本情況、發展歷史以及市場占有率。 本篇文章將介紹瀏覽器基本原理。 在掌握基本原理后,通過技術深入,在研發
    的頭像 發表于 08-12 14:32 ?609次閱讀
    不只是前端,后端、產品和測試也需要了解的<b class='flag-5'>瀏覽器</b>知識(二)

    谷歌Chrome瀏覽器新增三大AI功能,提升用戶體驗

    谷歌近日宣布,在其廣受歡迎的Chrome瀏覽器中引入了三項前沿的AI技術功能,旨在為用戶提供更加智能、便捷的瀏覽體驗。這些新功能由Gemini技術強力驅動,目前已在Chrome桌面版上線,標志著谷歌在AI與瀏覽器融合方面的又一重
    的頭像 發表于 08-05 11:26 ?1028次閱讀

    不只是前端,后端、產品和測試也需要了解的瀏覽器知識

    一、我們為什么要了解瀏覽器? 1. 對于前端開發者 1.瀏覽器是用戶體驗的第一線。我們需要了解瀏覽器的工作原理,才能有效地設計和實現用戶界面,確保良好的用戶體驗。 2.好的產品需要考慮瀏覽器
    的頭像 發表于 07-01 18:03 ?731次閱讀
    不只是前端,后端、產品和測試也需要了解的<b class='flag-5'>瀏覽器</b>知識

    如何用python調用瀏覽器的視頻?

    linda 我想用python調用瀏覽器的視頻。 我使用cv2調用視頻流,但是失敗了。 URL=\"http://192.168.4.1/face_stream\" cap = cv2.VideoCapture(URL) print(cap.isOpened()) 輸出了false,請問該怎么實現?
    發表于 06-26 08:15
    主站蜘蛛池模板: 视频一区中文字幕 | 新网球王子u17世界杯篇免费观看 | 国产精品久久久久久久久kt | 午夜女上男下xx00xx00动态 | 午夜影院官网 | 亚洲精品在线视频 | 五月激情视频 | 日日操夜夜操免费视频 | 亚洲国产成人久久77 | 欧美伊人 | 免费看黄色录像 | 免费看美女午夜大片 | 四虎在线永久视频观看 | 成人午夜网址 | 欧美一区二区三区不卡免费观看 | 久操视频免费观看 | 久久久久久久网站 | 夜夜爱网站 | 视频在线观看免费网站 | 色播影院性播影院私人影院 | 狠色网 | 人人免费操 | 奇米影视99 | 国产性较精品视频免费 | 日本一本在线视频 | 一级做a爰片久久毛片图片 一级做a爰片久久毛片鸭王 | 国产黄视频网站 | 天天干天天添 | 亚洲国产精品婷婷久久久久 | 2020狠狠操 | 天天曰天天干天天操 | 激情福利视频 | 日本三级高清 | 又粗又长又大真舒服好爽漫画 | 黄色污网站在线观看 | 2021最新久久久视精品爱 | 2017天天干夜夜操 | free性欧美video69 | 黄色三级在线观看 | 欧美精品一区二区三区视频 | 在线观看天堂 |