如何在 Javascript 中删除按名称兑现 - pwa

How to delete cashing by name in Javascript - pwa

我正在使用的 PWA 应用程序需要删除一个条目。

以下代码用于检查缓存。

self.addEventListener('activate', function (event) {
    console.log('[Service Worker] Activating Service Worker ....', event);
    event.waitUntil(
        caches.keys()
            .then(function (keyList) {
                console.log('[Service Worker] keyList ....', keyList);
                return Promise.all(keyList.map(function (key) {
                    if (key !== CACHE_STATIC_NAME && key !== CACHE_DYNAMIC_NAME) {
                        console.log('[Service Worker] Removing old cache.', key);
                        return caches.delete(key);
                    }
                }));
            })
    );
    return self.clients.claim();
});

我需要根据特定缓存键删除特定缓存中的条目。

这是一个辅助函数,它接收缓存名称和缓存名称中缓存键的 URL,并删除与该缓存键对应的 Response

async function deleteCacheKeyFromCache(cacheName, cacheKey) {
  const cache = await caches.open(cacheName);
  await cache.delete(cacheKey);
}

// Use it like:
// await deleteCacheKeyFromCache('my-cache', '/index.html');

如果 cacheName 不存在,或者 cacheKey 不存在于 cacheName 中,那么该函数实际上是一个空操作。