成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

面試官: 不同刷新操作,為啥緩存會(huì)失效,它的原理是什么

開(kāi)發(fā) 前端
瀏覽器緩存主要分為強(qiáng)緩存(Cache-Control)和協(xié)商緩存(ETag / Last-Modified)。在前端優(yōu)化中,我們通常結(jié)合 長(zhǎng)期緩存 + 版本號(hào)更新策略,讓瀏覽器高效使用緩存,同時(shí)確保資源更新。

瀏覽器提供了 三種不同的刷新方式,它們對(duì)緩存的處理方式不同,導(dǎo)致緩存可能失效:

1. 正常操作(直接打開(kāi)頁(yè)面/點(diǎn)擊鏈接)

強(qiáng)制緩存有效,協(xié)商緩存有效

原理

  • 瀏覽器首先檢查本地緩存(強(qiáng)緩存),如果 Cache-Control 允許緩存(max-age 未過(guò)期),則直接從緩存讀取數(shù)據(jù),不發(fā)起請(qǐng)求。
  • 如果強(qiáng)緩存過(guò)期進(jìn)入 協(xié)商緩存(If-Modified-Since / If-None-Match),服務(wù)器決定是否返回 304 Not Modified 還是新的資源。
  • 最終情況

a.如果資源未過(guò)期(強(qiáng)緩存生效) → 直接使用本地緩存。

b.如果資源過(guò)期但未更新(協(xié)商緩存生效) → 服務(wù)器返回 304,繼續(xù)使用本地緩存。

c.如果資源更新 → 服務(wù)器返回 200,重新獲取資源

2. 手動(dòng)刷新(F5 / 右鍵刷新 / 瀏覽器刷新按鈕)

強(qiáng)制緩存失效,協(xié)商緩存有效

原理

  • 瀏覽器跳過(guò)強(qiáng)緩存,不管 Cache-Control 設(shè)定了多長(zhǎng)的 max-age,都會(huì)重新向服務(wù)器發(fā)起請(qǐng)求。
  • 但仍然使用協(xié)商緩存,即瀏覽器會(huì)帶上 If-None-Match 和 If-Modified-Since,詢問(wèn)服務(wù)器資源是否有更新:

a.如果資源未修改 → 服務(wù)器返回 304 Not Modified,繼續(xù)使用緩存。

b.如果資源已修改 → 服務(wù)器返回 200,重新獲取資源。

  • 最終情況
  • 資源如果沒(méi)變,仍然可以使用本地緩存(協(xié)商緩存)。
  • 但強(qiáng)緩存已失效,必須與服務(wù)器確認(rèn)資源是否最新。

3. 強(qiáng)制刷新(Ctrl + F5 / Cmd + Shift + R)

強(qiáng)制緩存失效,協(xié)商緩存失效

原理

  • 瀏覽器完全跳過(guò)緩存(無(wú)論是強(qiáng)緩存還是協(xié)商緩存)。
  • 直接向服務(wù)器重新請(qǐng)求所有資源,不攜帶 If-None-Match 和 If-Modified-Since 頭。
  • 服務(wù)器無(wú)論如何都返回 **200 OK**,并返回最新資源。
  • 最終情況

a.所有資源都被重新下載,保證最新版本。

總結(jié)

刷新方式

強(qiáng)緩存 (Cache-Control)

協(xié)商緩存 (ETag, Last-Modified)

是否請(qǐng)求服務(wù)器

正常操作(點(diǎn)擊鏈接 / 直接打開(kāi)頁(yè)面)

? 有效

? 有效

? 僅強(qiáng)緩存生效時(shí)不請(qǐng)求

手動(dòng)刷新(F5 / 右鍵刷新)

? 失效

? 有效

? 請(qǐng)求服務(wù)器,可能返回 304

強(qiáng)制刷新(Ctrl + F5 / Cmd + Shift + R)

? 失效

? 失效

? 請(qǐng)求服務(wù)器,直接返回 200

面試官可能的追問(wèn)

面試官:手動(dòng)刷新和強(qiáng)制刷新為什么都會(huì)讓強(qiáng)緩存失效?回答:手動(dòng)刷新(F5)會(huì)讓 Cache-Control 失效,但仍然使用 ETag / Last-Modified 進(jìn)行協(xié)商緩存。而強(qiáng)制刷新(Ctrl+F5)會(huì)讓瀏覽器不帶緩存標(biāo)頭,完全重新請(qǐng)求所有資源。

面試官:如何讓瀏覽器強(qiáng)制緩存但能及時(shí)更新?回答:

  • **設(shè)置 Cache-Control: max-age=31536000, immutable**,讓靜態(tài)資源緩存 1 年。
  • 給資源文件名加上版本號(hào)或 Hash(app.abc123.js),每次更新資源時(shí)修改文件名,確保新版本能被正確加載。

面試官:如果用戶訪問(wèn)了舊的緩存文件,如何讓他強(qiáng)制刷新?回答:

  • 更改資源 URL(文件名帶版本號(hào))。
  • 后端設(shè)置 Cache-Control: no-cache,強(qiáng)制瀏覽器每次請(qǐng)求服務(wù)器驗(yàn)證。
  • 使用 Service Worker 監(jiān)聽(tīng)新版本,通知用戶刷新。

最佳面試回答

“瀏覽器緩存主要分為 強(qiáng)緩存(Cache-Control)和 協(xié)商緩存(ETag / Last-Modified)。不同的刷新方式會(huì)影響緩存策略:

  • 正常操作(點(diǎn)擊鏈接、訪問(wèn)頁(yè)面) → 強(qiáng)緩存生效,減少請(qǐng)求。
  • 手動(dòng)刷新(F5) → 強(qiáng)緩存失效,但協(xié)商緩存仍然生效。
  • 強(qiáng)制刷新(Ctrl + F5) → 徹底跳過(guò)緩存,重新請(qǐng)求所有資源。

在前端優(yōu)化中,我們通常結(jié)合 長(zhǎng)期緩存 + 版本號(hào)更新策略,讓瀏覽器高效使用緩存,同時(shí)確保資源更新。” 

這樣回答不僅清晰地闡述了緩存機(jī)制,還能體現(xiàn)出你的實(shí)戰(zhàn)經(jīng)驗(yàn),面試官一定會(huì)認(rèn)可你的專業(yè)性!

責(zé)任編輯:姜華 來(lái)源: 大遷世界
相關(guān)推薦

2024-04-19 08:23:06

2025-03-05 00:01:00

ReduxReact

2025-03-07 00:36:01

VuePiniaVuex

2024-02-20 14:10:55

系統(tǒng)緩存冗余

2021-05-06 14:34:12

Webpack熱更新程序

2023-12-27 18:16:39

MVCC隔離級(jí)別幻讀

2025-04-16 00:00:01

JWT客戶端存儲(chǔ)加密令

2024-11-19 15:13:02

2021-06-03 08:55:54

分布式事務(wù)ACID

2024-03-05 10:33:39

AOPSpring編程

2025-03-07 00:00:10

2024-08-22 10:39:50

@Async注解代理

2020-12-09 10:29:53

SSH加密數(shù)據(jù)安全

2025-03-10 07:05:07

2024-01-19 14:03:59

Redis緩存系統(tǒng)Spring

2021-08-04 08:33:25

React服務(wù)端渲染

2024-09-19 08:10:54

2024-07-31 08:28:37

DMAIOMMap

2024-03-14 14:56:22

反射Java數(shù)據(jù)庫(kù)連接

2024-12-06 07:00:00

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 最新中文字幕第一页视频 | 亚洲人成一区二区三区性色 | 五月免费视频 | 国产高清精品一区二区三区 | 国产午夜精品久久久 | 日韩免费av一区二区 | 91视频免费 | 天天射视频 | 91传媒在线观看 | 91香蕉视频在线观看 | 久久久久国产 | 久久久久久亚洲 | 男女羞羞视频大全 | 亚洲精品久久嫩草网站秘色 | 91精品国产综合久久香蕉麻豆 | 国产精品99久久久久久久vr | 久久精品久久久 | 天堂色网| 中文字幕第二十页 | 欧美一级在线观看 | 亚洲精品精品 | 午夜精品一区二区三区在线观看 | 亚洲综合第一页 | 国产精品久久久久免费 | 成人国产午夜在线观看 | 日韩福利在线 | 亚洲精品欧美一区二区三区 | 精品国产乱码久久久久久蜜臀 | 日韩网站在线观看 | a级黄色片视频 | 成人国产精品久久 | av天天干 | av在线免费观看网址 | 欧美中文在线 | 精品人伦一区二区三区蜜桃网站 | 色综合国产 | 日本一区二区不卡视频 | 在线免费亚洲视频 | 国产精品a久久久久 | 四虎最新视频 | 中文字幕视频一区二区 |