Сохранить данные в кеше с именем запроса - PullRequest
0 голосов
/ 26 ноября 2018

Работа с работником службы во время извлечения и обновления динамического кэша, если я указываю, что имя запроса сохраняет его следующим образом: / 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; 
    }
}

Кто-нибудь знает, как это решить?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...