【发布时间】:2016-08-23 07:13:05
【问题描述】:
我读到使用服务工作者进行离线缓存类似于浏览器缓存。如果是这样,那你为什么更喜欢服务工作者来进行缓存呢?浏览器缓存将检查文件是否被修改,然后从缓存中提供服务,并且通过服务工作者,我们从代码中处理相同的事情。默认情况下,浏览器具有该功能,那么为什么更喜欢 service worker?
【问题讨论】:
标签: browser-cache offline-caching service-worker
我读到使用服务工作者进行离线缓存类似于浏览器缓存。如果是这样,那你为什么更喜欢服务工作者来进行缓存呢?浏览器缓存将检查文件是否被修改,然后从缓存中提供服务,并且通过服务工作者,我们从代码中处理相同的事情。默认情况下,浏览器具有该功能,那么为什么更喜欢 service worker?
【问题讨论】:
标签: browser-cache offline-caching service-worker
Service Worker 让您可以完全控制网络请求。您可以为 fetch 事件返回任何您想要的内容,它不需要是该特定文件的过去或当前内容。
但是,如果 HTTP 缓存可以满足您的需求,则您没有义务使用 Service Worker。
它们也用于推送通知等。
文档: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
【讨论】:
我想分享我在阅读 Service Worker 文档并实施它时观察到的要点。
【讨论】:
其实用 sw 代替 http 缓存响应请求比较慢... 因为sw使用cache api来存储缓存内容,确实比浏览器缓存慢——内存缓存和磁盘缓存。
它不是为比http缓存更快而设计的,但是,当您使用sw时,您可以完全自定义响应,我认为完全可自定义是您应该使用它的原因。
如果你的情况不够复杂,你不应该使用它
【讨论】: