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

标签 caching browser-cache offline service-worker progressive-web-apps

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

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

是否有一种简单的方法可以在标准窗口上下文(而不是 Service Worker 上下文)中列出此类内容?

我找不到这方面的教程。我发现的所有教程都只涉及 Service Worker 部分。

谢谢。

最佳答案

除了在 Workers 中可用之外,Cache Storage API也可作为 window 的一部分提供全局范围,如 window.caches

这是 full example 的摘录使用该接口(interface)获取所有缓存内容的列表:

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.
      });
    });
  });
});

关于caching - 如何列出 Service Worker 已存储在浏览器缓存中的博客文章?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41348690/

相关文章:

google-chrome - Chrome 中的 "Normal Reload"、 "Hard Reload"和 "Empty Cache and Hard Reload"之间有什么区别?

带有 HTTP304 状态代码的 ASP.NET MVC2 浏览器缓存

html - 如何编写用于离线完成的 HTML 表单

javascript - 从上游速度较慢的服务器提供大型 JavaScript 文件库的最佳方法是什么?

iphone - 在 iPhone 上缓存整个网页

http - 缓存控制 header 应具有什么值才能启用 ETag\Last-Modified

java - ehcache与spring 3.0集成

asp.net - 要求浏览器缓存我们的图像(ASP.NET/IIS)

安卓 Gradle Jacoco : offline instrumentation for integration tests

caching - Clojure 的 `memoize` 函数在缓存慢速 sql 查询和复杂计算方面有用吗?