浏览器缓存机制
Chrome 浏览器使用多种缓存机制来提高页面加载速度和减少网络请求。
缓存类型
-
强缓存
- 通过 HTTP 头控制:Cache-Control 和 Expires
- Cache-Control: max-age=3600 表示缓存 1 小时
- 优先级高于协商缓存
-
协商缓存
- 通过 HTTP 头控制:ETag 和 Last-Modified
- ETag:资源内容的唯一标识
- Last-Modified:资源最后修改时间
- 需要向服务器验证资源是否变化
-
Service Worker 缓存
- 离线缓存能力
- 可以拦截网络请求
- 提供更细粒度的缓存控制
-
内存缓存
- 存储在内存中,页面关闭后失效
- 访问速度快,但容量有限
-
磁盘缓存
- 存储在硬盘上,可以长期保存
- 容量大,但访问速度相对较慢
缓存策略
- 静态资源:使用强缓存,设置较长的过期时间
- HTML 文件:使用协商缓存,确保获取最新内容
- API 响应:根据业务需求设置合适的缓存策略
缓存优先级
- Service Worker 缓存
- 内存缓存
- 磁盘缓存
- 网络请求
实际应用
- 使用版本号或 hash 值更新静态资源
- 合理设置 Cache-Control 头
- 利用 Service Worker 实现离线访问