如何检查 Service Worker 缓存中是否存在 url 路径
How to check if a url path exists in the service worker cache
我需要检查服务工作者缓存中是否存在特定的 URL 路径。
例如,假设我的 URL 是:
/myserviceworker/service?a=110&b=70
这个URL存在于缓存中,但是有很多a和b的值不同
现在,假设我想刷新所有这些 URL,我该怎么做?
我想知道如何从 Service Worker 缓存中访问键值。
如果我知道密钥,我的计划如下:
var url = new URL(key);
if(url.pathname === "\/myserviceworker/service")
then refetch the key
但我不确定如何获取缓存键以及它的格式。我的意思是,它是字符串还是已经是 URL?
Cache API 有一个 match()
方法,该方法 returns 如果匹配则在 Response 对象中解析,如果不存在匹配则 undefined
。第二个参数是一个对象,您可以在其中指定 ignoreSearch
以不考虑 URL 参数。
ignoreSearch
选项实际上是supported only by Firefox (Chrome status here).
另一方面,要检索所有缓存条目,您可以使用 keys()
方法。
我需要检查服务工作者缓存中是否存在特定的 URL 路径。 例如,假设我的 URL 是:
/myserviceworker/service?a=110&b=70
这个URL存在于缓存中,但是有很多a和b的值不同
现在,假设我想刷新所有这些 URL,我该怎么做?
我想知道如何从 Service Worker 缓存中访问键值。
如果我知道密钥,我的计划如下:
var url = new URL(key);
if(url.pathname === "\/myserviceworker/service")
then refetch the key
但我不确定如何获取缓存键以及它的格式。我的意思是,它是字符串还是已经是 URL?
Cache API 有一个 match()
方法,该方法 returns 如果匹配则在 Response 对象中解析,如果不存在匹配则 undefined
。第二个参数是一个对象,您可以在其中指定 ignoreSearch
以不考虑 URL 参数。
ignoreSearch
选项实际上是supported only by Firefox (Chrome status here).
另一方面,要检索所有缓存条目,您可以使用 keys()
方法。