📊 什么是浏览器缓存?
浏览器缓存是chrome存储网页资源(如图片、css、javascript文件)的临时存储区域。当您再次访问同一网站时,chrome可以直接从缓存中加载这些资源,而不是重新从服务器下载,从而显著提高页面加载速度。
速度提升
减少加载时间高达60%
带宽节省
减少重复数据传输
离线访问
支持部分离线浏览
缓存效率: 75%
🗂️ chrome缓存类型
内存缓存 (memory cache)
存储在ram中的临时缓存,访问速度最快但容量有限。页面刷新时,资源会从内存缓存加载。
- 容量:通常几十mb到几百mb
- 速度:最快(纳秒级)
- 持久性:关闭浏览器后清除
磁盘缓存 (disk cache)
存储在硬盘上的持久缓存,容量较大但速度相对较慢。
- 容量:通常几gb
- 速度:较快(毫秒级)
- 持久性:可长期保存
service worker缓存
可编程的缓存代理,支持离线功能和精细的缓存控制。
- 控制权:完全由开发者控制
- 功能:支持离线应用
- 更新:可主动更新缓存
http缓存
基于http协议头信息的缓存机制,包括强缓存和协商缓存。
- 强缓存:cache-control, expires
- 协商缓存:etag, last-modified
- 验证:304 not modified
⚙️ 缓存管理操作
查看缓存大小
chrome: chrome://settings/clearbrowserdata
清除缓存
快捷键: ctrl shift delete
// chrome devtools 查看缓存 chrome://cache/ chrome://view-http-cache/ // 命令行清除缓存 chrome --disk-cache-dir=/path/to/cache --disk-cache-size=1
🚀 缓存性能优化技巧
1. 设置合适的缓存策略
cache-control header
控制资源缓存行为的关键http头
// 静态资源长期缓存 cache-control: public, max-age=31536000 // html文件短期缓存 cache-control: public, max-age=3600 // 不缓存敏感内容 cache-control: no-store, no-cache
2. 使用版本控制
通过文件名哈希或查询参数实现缓存更新:
// 文件名哈希 style.a1b2c3d4.css script.e5f6g7h8.js // 查询参数 style.css?v=20231019183711
3. 预加载关键资源
🔧 常见问题与凯发app官方网站的解决方案
问题:页面显示旧内容
凯发app官方网站的解决方案:强制刷新 (ctrl f5) 或清除特定站点缓存
问题:缓存占用过多空间
凯发app官方网站的解决方案:定期清理缓存,设置合理的缓存大小限制
问题:开发时缓存干扰
凯发app官方网站的解决方案:使用chrome devtools的disable cache选项
💡 高级缓存技巧
缓存分区
chrome 86 支持基于顶级域名的缓存分区,防止跨站追踪
back/forward缓存
浏览器前进后退时的特殊缓存机制,保持页面状态
预渲染缓存
提前渲染可能访问的页面
chrome flags 实验性功能
访问 chrome://flags/ 启用实验性缓存功能:
- enable-nacl: native client缓存优化
- enable-gpu-rasterization: gpu缓存加速
- enable-parallel-downloading: 并行下载缓存