3

我对 PWA 有疑问,如果有人帮助我,我会很高兴。在我的 PWA 中,存储 HTML、JS 和 CSS 等静态文件没有任何问题。但我面临动态数据的问题。即:我self.addEventListener('fetch', function(e) { })没有被调用,但其他功能工作正常,即:“安装”和“活动”事件。

更具体地说,我使用@angular/service-worker的效果很好,但我创建了另一个名为sw.js. 在我sw-js的情况下,我正在听诸如“安装”、“活动”和“获取”之类的事件。我的sw.jsfetch 没有被调用,而其他两种方法运行良好。但是在ngsw-worker.js单独获取 fetch 方法时会被调用。

我需要的是在 PWA 中使用 Angular 进行 CRUD 操作。

提前致谢!

4

1 回答 1

0

您可以像下面那样进行动态缓存,服务工作者将拦截每个请求并添加到缓存中。

self.addEventListener("fetch", function (event) {


    event.respondWith(
      caches.open("dynamiccache").then(function (cache) {
        return fetch(event.request).then(function (res) {
          cache.put(event.request, res.clone());
          return res;
        })
      })
    )
  }

注意:您不能缓存 POST 请求 服务工作者可以缓存 POST 请求吗?

于 2018-08-30T21:10:16.313 回答