国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

前端瀏覽器緩存知識梳理,前端工程師面試題目和答案

這篇具有很好參考價(jià)值的文章主要介紹了前端瀏覽器緩存知識梳理,前端工程師面試題目和答案。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

所謂瀏覽器緩存其實(shí)就是指在本地使用的計(jì)算機(jī)中開辟一個(gè)內(nèi)存區(qū),同時(shí)也開辟一個(gè)硬盤區(qū)作為數(shù)據(jù)傳輸?shù)木彌_區(qū),然后用這個(gè)緩沖區(qū)來暫時(shí)保存用戶以前訪問過的信息。

瀏覽器緩存過程:?強(qiáng)緩存,協(xié)商緩存。

瀏覽器緩存位置一般分為四類:?Service Worker–>Memory Cache–>Disk Cache–>Push Cache。

1. 強(qiáng)緩存


強(qiáng)緩存是當(dāng)我們訪問URL的時(shí)候,不會向服務(wù)器發(fā)送請求,直接從緩存中讀取資源,但是會返回200的狀態(tài)碼。

如何設(shè)置強(qiáng)緩存?

我們第一次進(jìn)入頁面,請求服務(wù)器,然后服務(wù)器進(jìn)行應(yīng)答,瀏覽器會根據(jù)response Header來判斷是否對資源進(jìn)行緩存,如果響應(yīng)頭中expires、pragma或者cache-control字段,代表這是強(qiáng)緩存,瀏覽器就會把資源緩存在memory cache 或 disk cache中。

第二次請求時(shí),瀏覽器判斷請求參數(shù),如果符合強(qiáng)緩存條件就直接返回狀態(tài)碼200,從本地緩存中拿數(shù)據(jù)。否則把響應(yīng)參數(shù)存在request header請求頭中,看是否符合協(xié)商緩存,符合則返回狀態(tài)碼304,不符合則服務(wù)器會返回全新資源。

前端怎么利用瀏覽器進(jìn)行緩存,2024年程序員面試,前端,緩存,面試

expires

是HTTP1.0控制網(wǎng)頁緩存的字段,值為一個(gè)時(shí)間戳,準(zhǔn)確來講是格林尼治時(shí)間,服務(wù)器返回該請求結(jié)果緩存的到期時(shí)間,意思是,再次發(fā)送請求時(shí),如果未超過過期時(shí)間,直接使用該緩存,如果過期了則重新請求。

有個(gè)缺點(diǎn),就是它判斷是否過期是用本地時(shí)間來判斷的,本地時(shí)間是可以自己修改的。

Cache-Control

是HTTP1.1中控制網(wǎng)頁緩存的字段,當(dāng)Cache-Control都存在時(shí),Cache-Control優(yōu)先級更高,主要取值為:

public:資源客戶端和服務(wù)器都可以緩存。

privite:資源只有客戶端可以緩存。

no-cache:客戶端緩存資源,但是是否緩存需要經(jīng)過協(xié)商緩存來驗(yàn)證。

no-store:不使用緩存。

max-age:緩存保質(zhì)期。

前端怎么利用瀏覽器進(jìn)行緩存,2024年程序員面試,前端,緩存,面試

Cache-Control使用了max-age相對時(shí)間,解決了expires的問題。

pragma

這個(gè)是HTTP1.0中禁用網(wǎng)頁緩存的字段,其取值為no-cache,和Cache-Control的no-cache效果一樣。

前端怎么利用瀏覽器進(jìn)行緩存,2024年程序員面試,前端,緩存,面試

2. 緩存位置


上面我們說,強(qiáng)緩存我們會把資源房放到memory cache 和 disk cache中,那什么資源放在memory cache,什么資源放在disk cache中?

前端怎么利用瀏覽器進(jìn)行緩存,2024年程序員面試,前端,緩存,面試

存存儲圖像和網(wǎng)頁等資源主要緩存在disk cache,操作系統(tǒng)緩存文件等資源大部分都會緩存在memory cache中。具體操作瀏覽器自動(dòng)分配,看誰的資源利用率不高就分給誰。

可以看到memory cache請求時(shí)間都是0ms,這個(gè)是不是太神奇了,這方面我來梳理下。

查找瀏覽器緩存時(shí)會按順序查找: Service Worker–>Memory Cache–>Disk Cache–>Push Cache。

1. Service Worker

是運(yùn)行在瀏覽器背后的獨(dú)立線程,一般可以用來實(shí)現(xiàn)緩存功能。使用 Service Worker的話,傳輸協(xié)議必須為 HTTPS。因?yàn)?Service Worker 中涉及到請求攔截,所以必須使用 HTTPS 協(xié)議來保障安全。Service Worker 的緩存與瀏覽器其他內(nèi)建的緩存機(jī)制不同,它可以讓我們自由控制緩存哪些文件、如何匹配緩存、如何讀取緩存,并且緩存是持續(xù)性的。

2. Memory Cache

內(nèi)存中的緩存,主要包含的是當(dāng)前中頁面中已經(jīng)抓取到的資源,例如頁面上已經(jīng)下載的樣式、腳本、圖片等。讀取內(nèi)存中的數(shù)據(jù)肯定比磁盤快,內(nèi)存緩存雖然讀取高效,可是緩存持續(xù)性很短,會隨著進(jìn)程的釋放而釋放。一旦我們關(guān)閉 Tab 頁面,內(nèi)存中的緩存也就被釋放了。

3. Disk Cache

存儲在硬盤中的緩存,讀取速度慢點(diǎn),但是什么都能存儲到磁盤中,比之 Memory Cache 勝在容量和存儲時(shí)效性上。

在所有瀏覽器緩存中,Disk Cache 覆蓋面基本是最大的。它會根據(jù) HTTP Herder 中的字段判斷哪些資源需要緩存,哪些資源可以不請求直接使用,哪些資源已經(jīng)過期需要重新請求。并且即使在跨站點(diǎn)的情況下,相同地址的資源一旦被硬盤緩存下來,就不會再次去請求數(shù)據(jù)。絕大部分的緩存都來自 Disk Cache。

memory cache 要比 disk cache 快的多。舉個(gè)例子:從遠(yuǎn)程 web 服務(wù)器直接提取訪問文件可能需要500毫秒(半秒),那么磁盤訪問可能需要10-20毫秒,而內(nèi)存訪問只需要100納秒,更高級的還有 L1緩存訪問(最快和最小的 CPU 緩存)只需要0.5納秒。

前端怎么利用瀏覽器進(jìn)行緩存,2024年程序員面試,前端,緩存,面試

很神奇的,我們又看到了一個(gè)prefetch cache,這個(gè)又是什么呢?

prefetch cache(預(yù)取緩存)

link標(biāo)簽上帶了prefetch,再次加載會出現(xiàn)。

prefetch是預(yù)加載的一種方式,被標(biāo)記為prefetch的資源,將會被瀏覽器在空閑時(shí)間加載。

4. Push Cache

Push Cache(推送緩存)是 HTTP/2 中的內(nèi)容,當(dāng)以上三種緩存都沒有命中時(shí),它才會被使用。它只在會話(Session)中存在,一旦會話結(jié)束就被釋放,并且緩存時(shí)間也很短暫,在Chrome瀏覽器中只有5分鐘左右,同時(shí)它也并非嚴(yán)格執(zhí)行HTTP頭中的緩存指令。

5. CPU、內(nèi)存、硬盤

這里提到了硬盤,內(nèi)存,可能有些小伙伴對硬盤,內(nèi)存沒什么直觀的概念。

CPU、內(nèi)存、硬盤都是計(jì)算機(jī)的主要組成部分。

CPU:中央處理單元(CntralPocessingUit)的縮寫,也叫處理器,是計(jì)算機(jī)的運(yùn)算核心和控制核心。電腦靠CPU來運(yùn)算、控制。讓電腦的各個(gè)部件順利工作,起到協(xié)調(diào)和控制作用。

硬盤:存儲資料和軟件等數(shù)據(jù)的設(shè)備,有容量大,斷電數(shù)據(jù)不丟失的特點(diǎn)。

內(nèi)存:負(fù)責(zé)硬盤等硬件上的數(shù)據(jù)與CPU之間數(shù)據(jù)交換處理。特點(diǎn)是體積小,速度快,有電可存,無電清空,即電腦在開機(jī)狀態(tài)時(shí)內(nèi)存中可存儲數(shù)據(jù),關(guān)機(jī)后將自動(dòng)清空其中的所有數(shù)據(jù)。

3. 協(xié)商緩存


小編13年上海交大畢業(yè),曾經(jīng)在小公司待過,也去過華為、OPPO等大廠,18年進(jìn)入阿里一直到現(xiàn)在。

深知大多數(shù)初中級前端工程師,想要提升技能,往往是自己摸索成長或者是報(bào)班學(xué)習(xí),但自己不成體系的自學(xué)效果低效又漫長,而且極易碰到天花板技術(shù)停滯不前!
因此收集整理了一份《2024年Web前端開發(fā)全套學(xué)習(xí)資料》送給大家,初衷也很簡單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友,同時(shí)減輕大家的負(fù)擔(dān)。

前端怎么利用瀏覽器進(jìn)行緩存,2024年程序員面試,前端,緩存,面試
前端怎么利用瀏覽器進(jìn)行緩存,2024年程序員面試,前端,緩存,面試
前端怎么利用瀏覽器進(jìn)行緩存,2024年程序員面試,前端,緩存,面試
前端怎么利用瀏覽器進(jìn)行緩存,2024年程序員面試,前端,緩存,面試

由于文件比較大,這里只是將部分目錄截圖出來,每個(gè)節(jié)點(diǎn)里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實(shí)戰(zhàn)項(xiàng)目、講解視頻

如果你覺得這些內(nèi)容對你有幫助,可以添加下面V無償領(lǐng)?。。▊渥ⅲ呵岸耍?/strong>
前端怎么利用瀏覽器進(jìn)行緩存,2024年程序員面試,前端,緩存,面試

最后

開源分享:【大廠前端面試題解析+核心總結(jié)學(xué)習(xí)筆記+真實(shí)項(xiàng)目實(shí)戰(zhàn)+最新講解視頻】

最后寫上我自己一直喜歡的一句名言:世界上只有一種真正的英雄主義就是在認(rèn)清生活真相之后仍然熱愛它
前端怎么利用瀏覽器進(jìn)行緩存,2024年程序員面試,前端,緩存,面試

`

前端怎么利用瀏覽器進(jìn)行緩存,2024年程序員面試,前端,緩存,面試文章來源地址http://www.zghlxwxcb.cn/news/detail-852655.html

到了這里,關(guān)于前端瀏覽器緩存知識梳理,前端工程師面試題目和答案的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 細(xì)說前端打包發(fā)布后,瀏覽器緩存如何清理?其實(shí)只需要簡單的webpack配置就行

    細(xì)說前端打包發(fā)布后,瀏覽器緩存如何清理?其實(shí)只需要簡單的webpack配置就行

    有沒有這么一種場景,項(xiàng)目上線后,客戶使用過程中發(fā)現(xiàn)了bug,你急急忙忙改完,發(fā)布。但你發(fā)布后 測試人員或者客戶會說:“你這改了沒用啊”。 你:“清下緩存試試” 客戶:“????” 那么這篇文章帶你認(rèn)識瀏覽器緩存,及清除瀏覽器的緩存辦法。讓你不再為了緩存

    2024年02月09日
    瀏覽(38)
  • 有趣且重要的JS知識合集(18)瀏覽器實(shí)現(xiàn)前端錄音功能

    有趣且重要的JS知識合集(18)瀏覽器實(shí)現(xiàn)前端錄音功能

    兼容多個(gè)瀏覽器下的前端錄音功能,實(shí)現(xiàn)六大錄音功能: 1、開始錄音 2、暫停錄音 3、繼續(xù)錄音 4、結(jié)束錄音 5、播放錄音 6、上傳錄音 初始狀態(tài): 開始錄音: 結(jié)束錄音: 錄音流程 : 示例中的三個(gè)按鈕其實(shí)包含了六個(gè)上述功能,點(diǎn)擊開始時(shí)開始錄音,可以暫停/結(jié)束錄音,此

    2024年02月04日
    瀏覽(22)
  • 從瀏覽器輸入url到頁面加載(六)前端必須了解的路由器和光纖小知識

    從瀏覽器輸入url到頁面加載(六)前端必須了解的路由器和光纖小知識

    前言 上一章我們說到了 數(shù)據(jù)包 在網(wǎng)線中的故事,說到了 雙絞線 ,還說到了 麻花 。這一章繼續(xù)沿著這條線路往下走,說一些和cdn以及路由器相關(guān),運(yùn)營商以及光纖相關(guān)的小知識,前端同學(xué)應(yīng)該了解一下的 ? 目錄 前言 1.? CDN和路由器有關(guān)系嗎? 2. 你的電腦能直接上網(wǎng)嗎?

    2024年02月09日
    瀏覽(28)
  • 如何清理電腦瀏覽器緩存,4款常用瀏覽器清理緩存的方法

    如何清理電腦瀏覽器緩存,4款常用瀏覽器清理緩存的方法

    瀏覽器是人們在網(wǎng)絡(luò)生活中不可缺少的存在,我們使用各種瀏覽器上網(wǎng)的時(shí)候,可能會出現(xiàn)各種程序出錯(cuò)的問題?;蛘撸赡苁褂脼g覽器的時(shí)間就了,發(fā)現(xiàn)電腦有點(diǎn)卡頓,這時(shí)候就需要情況緩存了。那么,如何清理電腦瀏覽器的緩存呢?下面分享4款常用瀏覽器清理緩存的方法

    2024年02月04日
    瀏覽(21)
  • 瀏覽器緩存(強(qiáng)緩存、協(xié)商緩存)

    這一點(diǎn)主要解析瀏覽器緩存以及緩存機(jī)制的詳細(xì)過程。 與緩存相關(guān)的狀態(tài)碼: 200 ok?? ?從瀏覽器下載的最新資源 200 (from memory cache)?? ?不進(jìn)行http請求,直接從瀏覽器內(nèi)存中讀取的資源,頁面關(guān)閉,則資源釋放,一般一些腳本、圖片、文字等會存在內(nèi)存中 200 (from disk cache)?

    2024年04月17日
    瀏覽(53)
  • 瀏覽器強(qiáng)緩存與協(xié)商緩存

    瀏覽器強(qiáng)緩存與協(xié)商緩存

    強(qiáng)制緩存的思想是,在瀏覽器內(nèi)置數(shù)據(jù)庫中緩存每次請求中 “可以被緩存” (受到一些的管控)的靜態(tài)資源如 image, css, js 文件, 當(dāng)?shù)诙握埱蟊痪彺孢^的資源時(shí)候,會通過校驗(yàn)兩個(gè)字段 Expires 和 Cache-Control 的max-age字段(注意,Expires 是 http1.0 的產(chǎn)物, Cache-Control 則是

    2023年04月19日
    瀏覽(17)
  • 瀏覽器緩存原理

    瀏覽器緩存原理

    使用 HTTP 緩存的好處 :通過復(fù)用緩存資源,減少了客戶端等待服務(wù)器響應(yīng)的時(shí)間和網(wǎng)絡(luò)流量,同時(shí)也能緩解服務(wù)器端的壓力??梢燥@著的提升網(wǎng)站的應(yīng)用性能。 HTTP 緩存策略分為兩種 :強(qiáng)制緩存、協(xié)商緩存。 強(qiáng)制緩存 瀏覽器緩存沒有過期的時(shí)候可以直接決定使用緩存。 強(qiáng)

    2023年04月27日
    瀏覽(23)
  • 瀏覽器緩存機(jī)制

    瀏覽器緩存機(jī)制

    什么是瀏覽器緩存 瀏覽器緩存就是瀏覽器根據(jù) url 第一次訪問網(wǎng)站之后,將網(wǎng)站的 html、css、js、圖片等文件復(fù)制一份保留到瀏覽器中,當(dāng)你二次訪問這個(gè) url 的網(wǎng)站時(shí),如果網(wǎng)站沒有明確表示有更新時(shí),瀏覽器直接在緩存中查找內(nèi)容,不會再次請求網(wǎng)頁內(nèi)容,只有網(wǎng)頁明確表

    2024年02月04日
    瀏覽(27)
  • 強(qiáng)緩存、協(xié)商緩存(瀏覽器的緩存機(jī)制)是么子?

    強(qiáng)緩存、協(xié)商緩存(瀏覽器的緩存機(jī)制)是么子?

    為了減少資源請求次數(shù),加快資源訪問速度,瀏覽器會對資源文件如圖片、css文件、js文件等進(jìn)行緩存 所謂強(qiáng)緩存,可以理解為強(qiáng)制緩存的意思,即瀏覽器在訪問某個(gè)資源時(shí)會判斷是否使用本地緩存里已經(jīng)存在的資源文件,使用本地緩存的話則不會發(fā)送請求到服務(wù)器,從而達(dá)

    2024年01月20日
    瀏覽(21)
  • nginx配置瀏覽器緩存(強(qiáng)緩存、協(xié)商緩存、無緩存)

    nginx配置瀏覽器緩存(強(qiáng)緩存、協(xié)商緩存、無緩存)

    下載地址:點(diǎn)擊下載nginx 根據(jù)系統(tǒng)選擇要下載的安裝包,這里最好選擇穩(wěn)定版(stable version)。 下載好后解壓該zip,將解壓后的文件夾放在自己喜歡的目錄下,我是放在J盤(自己分的磁盤)下。 進(jìn)入J:nginx-1.22.0目錄,目錄結(jié)構(gòu): 注:project目錄是我自己創(chuàng)建的,用于存放打包

    2024年02月09日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包