如何列出已由 Service Worker 存储在浏览器缓存中的博客文章?

How can I list my blog posts already stored in the browser cache by a Service Worker?

我的博客已经有 a working Service Worker 缓存最近的帖子,让用户即使在离线时也能阅读。

在显示缓存中不可用内容的 the offline page 上,我想列出缓存中的最新帖子,让用户有机会在离线时阅读它们。

在标准 window 上下文而不是 Service Worker 上下文中,是否有一种简单的方法来列出此类内容?

我找不到任何教程。我找到的所有教程都只涉及 Service Worker 部分。

谢谢。

除了在 Workers 中可用之外,Cache Storage API is also available as part of the window 全局范围,如 window.caches

以下是 full example 使用该接口获取所有缓存内容列表的摘录:

window.caches.keys().then(function(cacheNames) {
  cacheNames.forEach(function(cacheName) {
    window.caches.open(cacheName).then(function(cache) {
      return cache.keys();
    }).then(function(requests) {
      requests.forEach(function(request) {
        // Do something with request, like update your UI
        // based on request.url.
      });
    });
  });
});