加载笔记内容...
加载笔记内容...
内存缓存 (Memory Cache)
磁盘缓存 (Disk Cache/HTTP Cache)
Cache-Control
、Expires
、ETag
、Last-Modified
。Service Worker 缓存
强缓存
Cache-Control
(优先级高)和 Expires
。1Cache-Control: max-age=3600 # 资源有效期为1小时
协商缓存
ETag
(优先级高)和 Last-Modified
。1ETag: "xyzzy"
2Last-Modified: Mon, 15 Jan 2024 12:00:00 GMT
策略示例:
1workbox.routing.registerRoute(
2 /\.(?:js|css)$/,
3 new workbox.strategies.CacheFirst({
4 cacheName: 'static-resources',
5 plugins: [
6 new workbox.expiration.ExpirationPlugin({
7 maxEntries: 50,
8 maxAgeSeconds: 30 * 24 * 60 * 60, // 30天
9 }),
10 ],
11 })
12);
处理跨域资源:
1// 设置fetch的mode为'cors',避免不透明响应
2{
3 fetchOptions: {
4 mode: 'cors',
5 credentials: 'omit',
6 }
7}
启发式缓存
Last-Modified
)。Cache-Control: no-cache
强制验证。缓存优先级冲突
no-store
覆盖其他缓存指令。版本控制
app.a1b2c3.js
),确保更新后URL变化,触发重新获取。Cache-Control: public, max-age=31536000
(1年)。Cache-Control: no-cache
+ ETag
/Last-Modified
。通过合理配置缓存策略,可显著提升网站性能,减少服务器负载,优化用户体验。