在前端开发中,图片作为重要的视觉元素,其加载速度直接影响用户体验。为了实现图片的快速回显,合理运用缓存策略至关重要。本文将从浏览器 HTTP 缓存、本地存储、内存缓存、Service Worker 缓存等多个维度,深入探讨前端图片缓存的具体策略与实现方式。
一、浏览器 HTTP 缓存策略
1.1 强缓存(Cache-Control/Expires)
强缓存通过响应头告知浏览器直接使用本地缓存,无需向服务器发送请求。在对象存储或 CDN 中配置Cache-Control或Expires响应头,如设置Cache-Control: max-age=31536000可使图片缓存 1 年 。这种方式无需前端代码改动,服务端统一配置即可,能有效减少 90% 以上重复请求,适用于不常更新的静态图片。
1.2 协商缓存(ETag/Last-Modified)
协商缓存则是浏览器发送请求时携带缓存标识(ETag 或 Last-Modified),服务器判断资源是否更新。若未更新,服务器返回 304 状态码,减少带宽消耗,仅传输响应头。此策略适用于可能更新但频率较低的图片。
二、本地存储缓存
2.1 Base64 编码缓存
将图片转换为 Base64 字符串存入本地存储,下次直接读取渲染。首次加载图片后,通过FileRead