Рабочий сервисный работник с StaleWhileRevalidate

Я сталкиваюсь с проблемой при использовании 'workbox.strategies.staleWhileRevalidate', я не получаю обновленные данные с ответом. Есть ли способ обновить данные с каждым запросом, используя эту стратегию? Я использую broadcastUpdate для проверки заголовка тоже, но когда я вхожу с другого терминала, он показывает старые данные. Я хочу, чтобы мой indexdb обновлялся при каждом запросе, а dom показывался согласно обновленному ответу.

workbox.routing.registerRoute(
  new RegExp('xy/xyzAPI/api'),
  workbox.strategies.staleWhileRevalidate({
    cacheName: 'api-url',
    plugins: [
      new workbox.expiration.Plugin({
        maxEntries: 20,
        maxAgeSeconds: 24 * 60 * 60
      }),
      new workbox.broadcastUpdate.Plugin('api-url', {
        headersToCheck: ['date'],
      })
    ]
  }));

1 ответ

В плагине удалите или уменьшите срок действия рабочего окна

workbox.routing.registerRoute(
  new RegExp('xy/xyzAPI/api'),
  workbox.strategies.staleWhileRevalidate({
    cacheName: 'api-url',
    plugins: [
      new workbox.expiration.Plugin({
        maxEntries: 20,

      }),
      new workbox.broadcastUpdate.Plugin('api-url', {
        headersToCheck: ['date'],
      })
    ]
  }));
Другие вопросы по тегам