在获取请求时与服务人员一起工作并更新动态缓存(如果我指出请求的名称)以这种方式保存它: / 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;
}
}
有人知道如何解决吗?