Service Worker 实际做什么
网站注册 Service Worker 后,浏览器会在后台运行它的脚本,与任何标签页分开。Worker 拦截该网站的网络请求、从本地缓存提供文件、从网络自我更新,并且在你关掉所有窗口后仍继续监听推送通知。可安装的 Web 应用、离线网页邮箱、无需商店应用即可使用的即时通讯,背后的机器就是它。
这确实是出色的设计——同时也是一个毫无羞耻心的存储设计。只要磁盘腾得出地方,浏览器就允许一个源在自己的 CacheStorage 里囤上数GB;你只开过一次的网页播放器或文档编辑器,可能一连数年攥着几百MB。Worker 和它的缓存就坐在浏览器配置文件里,除非存储压力逼浏览器动手,否则没人赶它们走。
残留住在哪里
在 Chrome 和其他 Chromium 内核浏览器中,这些存储位于每个配置文件文件夹内的 Service Worker\CacheStorage 和 Service Worker\ScriptCache 下。惯犯也毫无悬念:网页邮箱、各家流媒体的网页播放器、浏览器里的即时通讯,以及为了离线办公把整个界面都缓存下来的办公套件。Firefox 在自己的存储目录里用同样的思路、按源分键管理,所以残留根本不是 Chromium 独有的习惯。
- Chrome/Edge:%LOCALAPPDATA%\<browser>\User Data\<profile>\Service Worker\CacheStorage——这里出现数GB很正常
- 最占地的源:网页邮箱、流媒体网页播放器、浏览器即时通讯、在线办公套件
- 这块存储在设计上就能扛过浏览器重启、更新和系统重启
- 每个网站的占用大小可在 DevTools → Application → Storage 或 chrome://settings/content/all 里查看
- 只访问过一次的网站会一直保留缓存,直到你手动清除——没有任何自动过期
安全清除这些残留
针对单个网站,DevTools → Application → Service Workers 里有 Unregister(取消注册)按钮,chrome://serviceworker-internals 则会列出该配置文件下所有已注册的 Worker,并带同样的选项。从 chrome://settings/content/all 清除某网站的数据,会一次性移除 Worker、它的缓存和 Cookie——你会被登出,而且反正下次访问网站还会重新注册。两个操作都不危险:最坏情况不过是 Web 应用下次重新下载文件。
要清理整个配置文件,手动翻文件夹很快就让人烦——Kleaner PRO 的深度清理正是为这份差事而生:一次扫过所有配置文件的浏览器缓存,包括这类残留。如果你坚持手动,就把 Service Worker 文件夹按大小排序,删掉最重的几个源,然后收工。无论哪种方式,空间立刻回来,网站下次访问时自会重建所需内容。
常见问题与解答
删除 Service Worker 会怎样?
下次访问时网站会直接注册一个新的 Worker。在那之前你会失去该网站的离线访问和推送通知;只有连 Cookie 一起清除才会被登出。
网站为什么在我的电脑上存数据?
为了让 Web 应用秒开、离线可用,并且不需要打开标签页也能接收通知。这和商店应用的本地缓存是同一个思路,只是由浏览器送货上门。
继续阅读
联系我们: [email protected]