Я хотел бы иметь массив для настройки части пути (для кэширования ответа, когда он совпадает с запрошенным URL-адресом) и срока действия (для истечения срока действия кэша через X секунд), но я не могу сделать обработчик ''для правильной работы.
Это массив для настройки пути и срока действия:
const PATHS_TO_CACHE = [
{ url: 'api/v1/destination', expiration: THIRTY_DAYS },
{ url: 'api/v1/hotel', expiration: THIRTY_MINUTES },
];
Это метод для кэширования, который вызывает cachePath
для сопоставления и pathHandler
для обработки:
function cachePaths() {
workbox.routing.registerRoute(cachePath, pathHandler);
}
Метод сопоставления:
function cachePath({ url, event }) {
const match = PATHS_TO_CACHE.find(function(path) {
return url.href.includes(path.url);
});
return match || false;
}
И метод обработчика:
function pathHandler({ url, event, params }) {
return workbox.strategies.staleWhileRevalidate({
cacheName: 'url-cache',
plugins: [
new workbox.cacheableResponse.Plugin({
statuses: [0, 200],
}),
new workbox.expiration.Plugin({
maxAgeSeconds: params.expiration,
}),
],
});
}
Ну, pathHandler
не работает и несколько попыток привеломеня к разочарованию ... выдает ошибки, где мне нужно return new Response(something)
(сделал это с url
и event
), неправильные запросы на получение и неправильные ответы объекта.
Итак, как мне построить pathHandler
способ кешировать ответ на Х секунд и все же получить правильный ответ?
Заранее спасибо!