【发布时间】:2017-03-15 08:44:07
【问题描述】:
在https://developer.mozilla.org/en-US/docs/Web/API/CacheStorage 页面中,它告诉我们:
CacheStorage 接口表示缓存对象的存储。它提供了一个服务工作者、其他类型的工作者或窗口范围可以访问的所有命名缓存的主目录(你不必将它与服务工作者一起使用,即使这是定义它的规范)并维护一个映射字符串名称到相应的缓存对象。
所以,我想知道。在 ServiceWorker 中使用 cacheStorage 是否比在 Window 范围内更好?为什么?
由于没有人回答,我想分享我的想法。
在我看来,有几个优点。
首先,serviceWorker由另一个线程处理,效率更高。
下一个,serviceWorker 可以简单地添加到旧网站而不更改代码,而当您计划在窗口范围内使用它时,您必须重写 ajax 代码等。
最后但并非最不重要的一点是,您可以在页面关闭时运行它。例如,您可以在收到推送时将某物放入缓存中。
然而,它仍然让我感到困惑。为什么浏览器允许窗口范围获得权限。我们在主线程中编写是否方便?或者,这会给我们带来一些安全隐患,因为当我们的页面被xss后,那个黑客就可以访问缓存了?
【问题讨论】:
标签: javascript web browser-cache service-worker