self.addEventListener('fetch', function(e) { }) не работает

У меня есть сомнения в PWA, и я буду рад, если кто-нибудь поможет мне с этим. В моем PWA у меня нет проблем с хранением статических файлов, таких как HTML, JS и CSS. Но сталкиваюсь с проблемами динамических данных. то есть: мой self.addEventListener('fetch', function(e) { }) не вызывается, но другие функции работают нормально, например: 'install' и 'active'.

чтобы быть более конкретным, я использую @angular/service-worker который работал нормально, но я создал еще один SW-файл под названием sw.js, В моем sw-js Я слушаю такие события, как "установить", "активный" и "выборка". мой sw.js fetch не вызывается, тогда как другие два метода работают хорошо. Но при получении ngsw-worker.jsвызывается только метод выборки.

Мне нужно сделать CRUD Operations в PWA с угловым режимом.

Заранее спасибо!

1 ответ

Вы можете выполнить динамическое кеширование, как показано ниже, работник сервиса перехватит каждый запрос и добавит его в кеш.

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-запросы?

Другие вопросы по тегам