Работа с работником службы во время извлечения и обновления динамического кэша, если я указываю, что имя запроса сохраняет его следующим образом: / sites / MLM / search , но не сохраняетответ, потому что он не оставляет данных.
Это API: https://api.mercadolibre.com/sites/MLM/search?nickname=JBL.MX
Вот выборка:
resFetch = apiFetch( CACHE_DYNAMIC_NAME, e.request);
Функция, которая вызывает обновление динамического кэша:
function apiFetch( cacheName, request ) {
return fetch( request )
.then( res => {
if( res.ok ) {
updateDynamicCache( cacheName, request, res.clone() );
return res.clone();
} else {
return cache.match( request );
}
})
}
Это функция для обновления динамического кэша
function updateDynamicCache( dynamicCache, req, response ){
console.log(req)
if( response.ok ){
return caches.open( dynamicCache ).then( cache => {
cache.put( req, response.clone() );
return response.clone();
})
} else {
return response;
}
}
Но если вместо передачи запроса к cache.put я передаю случайное имя, он кэширует ключ с этим случайным именеми данные без проблем:
function updateDynamicCache( dynamicCache, req, response ){
console.log(req)
if( response.ok ){
return caches.open( dynamicCache ).then( cache => {
cache.put( 'random-name', response.clone() );
return response.clone();
})
} else {
return response;
}
}
Кто-нибудь знает, как это решить?