Я работаю над приложением типа авторинга / CMS.Приложение позволяет одновременно редактировать различные «блоки» данных.Он поддерживает в автономном режиме, используя appache и indexDB.При таком подходе я знаю, поступают ли мои данные из сети или из кэша.Теперь я хотел бы перенести вещи, чтобы использовать сервисных работников и новый API кеша.
Мне нужен способ узнать, были ли мои данные (запрос) поданы из кеша или сети, чтобы я мог информировать пользователейони, возможно, просматривают устаревшие данные, поэтому любые изменения могут переопределять данные, о которых они не знают.IMO, это было бы довольно распространенным делом, но оказалось, что это не так просто ...
В настоящее время я пытаюсь заставить все работать, используя WorkBox, но я был бы более чем счастлив с нативнымрешение.Используя Workbox, я попытался установить новый заголовок ответа, но Chrome жалуется на
const apiStrategy = workbox.strategies.cacheFirst({
cacheName: 'data-cache',
cacheExpiration: {
maxEntries: 100,
maxAgeSeconds: 3600 * 24
},
cacheableResponse: { statuses: [200] }
});
workbox.routing.registerRoute(
new RegExp('/api/'),
async ({event, url}) => {
const cachedResponse = await apiStrategy.handle({event, url});
if (cachedResponse) {
const responseClone = cachedResponse.clone();
responseClone.headers.set('x-sw-cache', 'yes');
return responseClone;
}
return cachedResponse;
}
);
Так есть ли способ узнать, пришел ли ответ из сети или из кэша?