Как получить объект JSON, хранящийся в кеше, от работника сервиса? - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть объект Json, хранящийся в кеше, Пожалуйста, посмотрите мой кэш здесь .

И я хочу получить значения json из моего сервисного работника

   caches.open('my-post-request').then(function (cache) {
      cache.match('/cached-products.json').then(function (matchedResponse) {
        return fetch('/cached-products.json').then(function (response) {
          return response;

        })
      });
    });

Есть способ сделать это?исследуя ответ в консоли, я вижу только заголовки свойств, хорошо, статус, тип, URL, тело, но я не могу найти мои значения json где-либо.

Буду признателен за любое предложение.

Спасибо

1 Ответ

0 голосов
/ 06 декабря 2018

Вы можете попробовать что-то вроде этого:

var CACHE_NAME = 'dependencies-cache';

self.addEventListener('install', function(event) {

console.log('[install] Kicking off service worker registration!');

event.waitUntil(
    caches.open(CACHE_NAME).then(function(cache) { //  With the cache opened, load a JSON file containing an array of files to be cached

      return fetch('files-to-cache.json').then(function(response) {
         return response.json(); // Once the contents are loaded, convert the raw text to a JavaScript object

            }).then(function(files) {
              console.log('[install] Adding files from JSON file: ', files); // this will log the cached json file 

                 return cache.addAll(files); // Use cache.addAll just as you would a hardcoded array of items

       });
    })
  .then(function() {
      console.log(
      '[install] All required resources have been cached;',
      'the Service Worker was successfully installed!'
      );
   return self.skipWaiting(); // Force activation   
      })
    );
 });

Это решит вашу проблему.Из приведенного выше кода вы можете просто вернуть свой ответ как response.json(), чтобы преобразовать необработанный текст в объект Javascript.Для полной реализации Service Worker для кэширования JSON-файла вы можете посетить эту документацию .

...