Service Worker生成器

在线 Service Worker 生成器,配置缓存名称、预缓存资源、缓存策略(缓存优先/网络优先/过期回退),生成 sw.js 和注册代码,快速实现 PWA 离线。

工具功能

这是一个在线 Service Worker 生成工具,可以根据你输入的缓存版本、预缓存 URL 列表和缓存策略,自动生成标准的 Service Worker 文件(sw.js)和注册代码,用于给网站添加离线缓存能力。

使用方法

  1. 在「缓存版本号」输入框中填写你当前缓存的版本标识,比如 v1、v2 等,更新缓存时需要修改版本号。
  2. 在「预缓存 URL 列表」中每行填写一个需要预缓存的 URL 地址,这些资源会在 Service Worker 安装时缓存到浏览器中。
  3. 选择你需要的缓存策略,不同策略适合不同场景。
  4. 点击「生成 Service Worker」按钮,工具会自动生成 sw.js 代码和前端注册代码。
  5. 复制生成的 sw.js 内容,保存为 sw.js 文件放在你网站的根目录,然后把注册代码添加到你网站的主 JavaScript 文件中即可。

缓存策略说明

策略原理适用场景
缓存优先(Cache First)优先从缓存读取资源,缓存不存在才请求网络,请求到资源后存入缓存静态不变的资源,比如图片、CSS、JS 文件,适合离线访问
网络优先(Network First)优先请求网络,网络请求失败才从缓存读取频繁更新的资源,比如接口数据、动态内容
先返回缓存再更新(Stale While Revalidate)立刻返回缓存内容,同时后台请求网络更新缓存对响应速度要求高,又需要及时更新内容的场景

注意事项

生成的 Service Worker 需要放在哪里?

需要把生成的代码保存为 sw.js 文件,放到你网站的根目录下,这样才能对全站资源生效。

为什么我更新了网站内容,浏览器还是显示旧内容?

修改内容后需要修改缓存版本号,浏览器才会重新安装新的 Service Worker 并更新缓存。如果不修改版本号,浏览器会沿用旧的缓存,不会更新。

Service Worker 缓存和普通浏览器缓存有什么区别?

Service Worker 是开发者主动控制的缓存,可以自定义缓存哪些资源、使用什么策略,比浏览器默认缓存更灵活可控,还支持离线访问,适合做 PWA 应用的缓存方案。

添加 Service Worker 对网站 SEO 有影响吗?

正规使用 Service Worker 做静态资源缓存不会对 SEO 产生负面影响,反而会提升网站加载速度,有助于 SEO,它只做资源缓存,不会改变页面内容。