progressive-web-apps - self.addEventListener ('fetch',函数(e){})不工作

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

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

更具体地说,我使用的是 @angular/service-worker,它运行良好,但我创建了另一个名为 sw.js 的 sw 文件。在我的 sw-js 中,我正在收听“安装”、“事件”和“获取”等事件。我的 sw.js fetch 没有被调用,而其他两种方法运行良好。但是在提取 ngsw-worker.js 时,单独调用 fetch 方法。

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

提前致谢!

最佳答案

您可以像下面这样进行动态缓存,service worker 将拦截每个请求并添加到缓存中。

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

Note : You can't cache POST Requests Can service workers cache POST requests?

关于progressive-web-apps - self.addEventListener ('fetch',函数(e){})不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52095802/

相关文章:

android - 渐进式 Web 应用程序与原生应用程序在 Android 上具有哪些功能,反之亦然

javascript - 是否可以使用 React-strap 构建渐进式 Web 应用程序?

service-worker - 浏览器关闭时如何唤醒服务人员

javascript - serviceWorker 'activate' 和 'message' 事件未触发

android - PWA Vue JS App 不显示在设备上

angular - 如何在 Angular 5+ Service Workers 中处理路由?

Angular PWA 离线数据处理

Angular 6 Service worker 拒绝缓存 Assets ,因为未正确获取 ngsw.json

javascript - service worker 不在现场工作,而是在本地工作

reactjs - 永远显示 "lighthouse is warming up"