新聞動(dòng)態(tài)
用文字傳播思想
用行動(dòng)感動(dòng)自己


1. 所有頁(yè)面都設(shè)了強(qiáng)緩存,結(jié)果無(wú)法及時(shí)更新
我們?cè)龅揭粋€(gè)客戶,設(shè)置了 HTML 頁(yè)面的 Cache-Control: max-age=31536000(緩存一年),結(jié)果每次修改內(nèi)容都無(wú)法立即生效,客戶以為網(wǎng)站“壞了”。
優(yōu)化方式:
對(duì) HTML 頁(yè)面使用較短緩存,如
max-age=300;啟用版本號(hào)或文件指紋,如
style.css?v=20250610;改版或發(fā)新內(nèi)容后自動(dòng)觸發(fā)清理緩存。
2. API 接口被 CDN 緩存,數(shù)據(jù)錯(cuò)亂
很多企業(yè)用 CDN 緩存接口數(shù)據(jù)以提升響應(yīng)速度,但未設(shè)置緩存鍵,導(dǎo)致不同用戶請(qǐng)求共用一份緩存數(shù)據(jù)。
結(jié)果就是 A 用戶登錄后操作,B 用戶刷新頁(yè)面卻看到 A 的信息,非常危險(xiǎn)。
正確策略:
動(dòng)態(tài)接口設(shè)置
Cache-Control: no-store;用戶級(jí)接口必須帶身份標(biāo)識(shí)控制緩存;
數(shù)據(jù)更新頻繁的接口禁止使用 CDN 緩存。
3. 上傳類(lèi)接口和編輯操作未關(guān)閉緩存
有的網(wǎng)站文件上傳失敗或內(nèi)容修改后頁(yè)面未同步,核心問(wèn)題是瀏覽器對(duì)接口請(qǐng)求進(jìn)行了緩存。
例如編輯頁(yè)面保存按鈕點(diǎn)擊后無(wú)反饋,刷新后才發(fā)現(xiàn)數(shù)據(jù)早已修改。
解決方案:
在前端請(qǐng)求 URL 添加時(shí)間戳,如
/api/save?_t=timestamp;后端接口加上
Cache-Control: no-cache;文件上傳接口啟用 POST 請(qǐng)求 + 關(guān)閉 CDN 緩存。
緩存是工具,不是“加速萬(wàn)能鑰匙”
緩存必須分內(nèi)容類(lèi)型、訪問(wèn)場(chǎng)景做“差異化策略”。
否則,它可能成為你與用戶之間的“墻”。
我們認(rèn)為:
樣式、腳本、圖片可以大膽緩存;
頁(yè)面、接口、操作類(lèi)請(qǐng)求需要精準(zhǔn)控制;
如果用戶頻繁說(shuō)“怎么還沒(méi)更新”,說(shuō)明你該看看緩存設(shè)置了.