在serviceWorker之外使用cacheStorage是不是很好?为什么?

时间:2017-03-15 08:44:07

标签: javascript web browser-cache service-worker

https://developer.mozilla.org/en-US/docs/Web/API/CacheStorage页面中,它告诉我们:

  

CacheStorage接口表示Cache对象的存储。它提供了ServiceWorker,其他类型的工作者或窗口范围可以访问的所有命名高速缓存的主目录(您不必将它与服务工作者一起使用,即使这是定义它的规范)并维护字符串名称到相应的Cache对象的映射。

所以,我想知道。在ServiceWorker中使用cacheStorage比在Window范围内使用更好吗?为什么呢?

由于没人回答,我想分享我的想法。

在我看来,有几个优点。

首先,serviceWorker由另一个线程处理,这使其更有效。

下一个,serviceWorker只需添加到旧网站而无需更改代码,而当您打算在窗口范围内使用它时,您必须重写ajax代码等。

最后但并非最不重要的是,您可以在关闭页面时运行此命令。例如,您可以在推送时将其放入缓存中。

然而,它仍然让我感到困惑。为什么浏览器允许窗口范围获得权限。这是一种方便我们在主线程中写入的方法吗?或者,这会给我们带来一些安全风险,因为当我们的页面是xss时,黑客可以访问缓存吗?

1 个答案:

答案 0 :(得分:0)

  

为什么浏览器允许窗口范围获得权限?

服务人员无法访问DOM元素。 因此,如果我要预缓存当前页面上找到的某些url,则从窗口范围执行操作比从服务工作者执行操作容易得多。