我了解到使用服务工作者进行离线缓存与浏览器缓存类似。如果是这样,那么为什么您更喜欢使用服务工作者进行此缓存呢?浏览器缓存将检查文件是否被修改,然后从缓存中提供服务,对于服务工作者,我们从代码中处理同样的事情。默认情况下,浏览器有这个特性,那么为什么要选择服务工作者呢?
ServiceWorkers 让您完全控制网络请求。您可以为提取事件返回任何您想要的内容,它不需要是该特定文件的过去或当前内容。
但是,如果 HTTP 缓存处理您的需求,您就没有义务使用 ServiceWorkers。
它们还用于诸如推送通知之类的事情。
文档: https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API,https://developer.mozilla.org/en-US/docs/Web/API/Service_Worker_API/Using_Service_Workers
我希望分享我在浏览服务工作者文档并实现它时所观察到的要点。
实际上,当使用 sw 而不是 http 缓存时,响应请求的速度要慢一些..。 因为 sw 使用缓存 api 来存储缓存内容,所以它实际上比浏览器缓存——内存缓存和磁盘缓存——要慢。
它的设计并不比 http 缓存快,但是,当你使用 sw 时,你可以完全定制响应,我认为完全可定制是你应该使用它的原因。
如果你的情况不够复杂,你不应该使用它