使用服务工作者动态缓存 HTTP URL 的包装器?

Wrapper for dynamically cache HTTP URLs using service worker?

我有一个运行服务工作者的应用程序。我正在使用 sw-toolbox 库动态缓存 URLs,但我想在 sw-toolbox 上创建包装器,为我的应用程序提供 getter 和 setter 以进行 URL 缓存。

由于 service worker 在不同的线程中运行,而我的应用程序 运行 在主线程中运行,所以只是想知道如何在 Javascript 中创建一个包装器,我的应用程序可以通过它与 service worker 和缓存资源进行通信按需?

这取决于您的 worker 如何缓存数据,它只使用标准的“Cache”API 而不是您只能查询附加到全局范围的 cache 对象。

在这种情况下 Cache.match() 是你的朋友。

到目前为止 Cache api 可从内容中获得,这意味着您可以直接从您的 Javascript 代码中使用它,无需 运行 在服务中工人.

检查此线程以找到解决方案:https://github.com/slightlyoff/ServiceWorker/issues/698您将能够使用来自 window 对象的缓存。

意味着您可以使用所有范围的缓存方法来处理内容:https://developer.mozilla.org/en-US/docs/Web/API/Cache

再次提醒,从 Chrome 46 开始,您将能够仅在安全来源中存储内容。

From the Documentation, Cache API/interface 暴露给窗口作用域和 worker。

You don't have to use it in conjunction with service workers, even thought it is defined in the service worker spec.