无需登录 数据私有 本地保存

Workbox 配置生成器 - 自定义 Service Worker 策略

24
0
0
0

配置 Workbox Service Worker 缓存策略,实时生成可部署的 sw.js 代码。支持预缓存、运行时路由、多种缓存策略及过期控制。

快捷预设:
⚙️ 全局设置
📦 预缓存资源 (安装时即缓存)
revision 用于缓存更新检测,留空则使用文件内容哈希(构建时注入)。
🔄 运行时缓存规则 0
常见问题
Workbox 是什么?为什么需要它?
Workbox 是 Google 开发的一套 Service Worker 库,简化了离线缓存、请求拦截、预缓存、后台同步等复杂任务。它提供了开箱即用的缓存策略(CacheFirst、NetworkFirst 等),帮助开发者轻松构建可靠的 PWA 应用,而无需手动处理繁琐的 Service Worker 生命周期。
如何选择正确的缓存策略?
CacheFirst:适合不常变化的静态资源(CSS/JS/字体),优先使用缓存,速度快。
NetworkFirst:适合需要最新数据但需离线兜底的场景(API响应、页面内容)。
StaleWhileRevalidate:适合可容忍短暂过期的资源(头像、封面图),立即返回缓存同时后台更新。
NetworkOnly:适合必须实时的请求(支付、表单提交)。
CacheOnly:适合完全离线场景,仅从缓存获取。
生成的代码如何使用?
将生成的代码保存为项目根目录下的 sw.js 文件,然后在主 JavaScript 文件中注册 Service Worker:
navigator.serviceWorker.register('/sw.js');
确保 sw.js 位于网站根目录,以便其作用域覆盖整个站点。
预缓存(Precaching)和运行时缓存的区别?
预缓存在 Service Worker 安装阶段就会下载并缓存指定的资源,确保这些资源在首次访问时就可用(离线可用)。运行时缓存则是在用户实际发起网络请求时才动态缓存响应,适合无法预知的资源或动态内容。
maxAgeSeconds 和 maxEntries 如何设置?
maxAgeSeconds:缓存条目的最大存活时间(秒),超过后自动清理。例如图片缓存可设为 30 天(2592000秒)。
maxEntries:缓存中最多保留的条目数量,超出时按 LRU(最近最少使用)策略淘汰旧条目。建议根据资源类型合理设置,避免缓存无限增长占用存储空间。
如何调试 Service Worker 缓存?
在 Chrome DevTools 中打开 Application 面板 → Cache Storage,可以查看所有缓存的条目。启用本工具的"调试模式"选项后,生成的代码会在控制台输出缓存命中/未命中的日志,方便排查问题。也可以使用 workbox.core.setLogLevel(workbox.core.LOG_LEVELS.debug) 开启详细日志。
生成的 sw.js
sw.js 0 行
// 配置后将自动生成代码...
将生成的代码保存为项目根目录的 sw.js,并通过 navigator.serviceWorker.register('/sw.js') 注册。
已复制到剪贴板!