Я пытаюсь добавить некоторые автономные возможности в мое веб-приложение.При определенных обстоятельствах я хочу получить данные из запроса / ответа в кеше, изменить их и добавить обратно в кеш в качестве новой пары запрос / ответ.
До сих пор я был в состоянии получить данные из кэша и изменить их, но когда я помещаю их в кэш, я получаю пустую запись в кэше (Content-Length: 0). РЕДАКТИРОВАТЬ: На самом деле, инструменты разработчика Chrome показывают, на панели предварительного просмотра, правильный объект, но в списке записей кэша он говорит "Content-Length: 0" и "Time Cached: 01.01.1970 0: 59: 59 ".
И затем, при попытке извлечь его снова из кэша, я получаю сообщение об отсутствии совпадения, и cache.match () возвращает неопределенное значение.
Эточто у меня пока так:
return caches.open(CACHE_NAME).then(function(cache) {
return cache.matchAll().then(function(responses) {
var resp = responses[0].clone();
return resp.clone().json().then(function (datosResp) {
var nuevaMed = nuevaMedicionDesdeMedicion(datosResp);
var urlACachear = new URL('obra/' + nuevaMed.obraId + '/mediciones/' + nuevaMed.id, urlBase);
var nuevaMedJSON = JSON.stringify(nuevaMed);
var blob1 = new Blob([nuevaMedJSON], { type: "application/json;charset=utf-8" });
var myHeaders = new Headers(resp.headers);
var resACachear = new Response(blob1, { "status": 200, myHeaders });
return cache.put(urlACachear, resACachear.clone()).then(function() {
// Whatever...
});
});
});
});
Есть идеи как это сделать?Можно ли даже хранить и корректно извлекать мои собственные запросы и ответы?