Стратегия Workbox Stale-while-revalidate всегда возвращает ответ от сетевого вызова вместо кэша - PullRequest
0 голосов
/ 05 ноября 2018

Я использую workbox-webpack-plugin , ниже приведен код в конфигурации webpack

new GenerateSW({
  runtimeCaching: [
    {
      urlPattern: new RegExp('^https://devapi\.mysite\.xyz/'),
      handler: 'staleWhileRevalidate',
      options: {
        cacheableResponse: {
            statuses: [200]
        }
      }
    }
  ]
})

Ниже приведен поток устаревших при повторной проверке стратегии согласно Google Doc

Stale while revalidate flow - Google Doc

Я вызываю API из междоменной области, и я наблюдал, что каждый раз ответ возвращается на интерфейс не из кэша, а из ответа на сетевой вызов.

Я ожидаю, что когда тот же API будет вызван во второй раз, я должен получить ответ из кеша, а затем кэш должен быть обновлен по ответу сетевого вызова.

1 Ответ

0 голосов
/ 09 ноября 2018

Я думаю, что вся информация в этом руководстве " Обработка запросов третьих сторон " должна помочь.

В частности, убедитесь, что ваш удаленный сервер использует CORS, иначе вы получите response со статусом 0. Вы явно настраиваете плагин cacheableResponse для кэширования только ответов со статусом 200.

...