Рабочий сервисный работник с 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'],
})
]
}));