self.addEventListener('fetch',function(e){})不起作用

时间:2018-08-30 11:21:35

标签: progressive-web-apps angular-service-worker service-worker-events

我对PWA存有疑问,如果有人对此提供帮助,我将感到非常高兴。在我的PWA中,存储静态文件(如HTML,JS和CSS)没有任何问题。但是我面临着有关动态数据的问题。即:我的self.addEventListener('fetch', function(e) { })未被调用,但是其他功能也正常运行,即:“安装”和“活动”事件。

更具体地说,我正在使用@angular/service-worker,它工作正常,但是我创建了另一个名为sw.js的sw文件。在我的sw-js中,我正在收听诸如“安装”,“活动”和“获取”之类的事件。我的sw.js提取未得到调用,而其他两种方法运行良好。但是,仅在获取ngsw-worker.js的获取方法时,就会被调用。

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

谢谢!

1 个答案:

答案 0 :(得分: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请求   Can service workers cache POST requests?