PWA-如何从API端点获取数据并将其缓存在服务工作者中?

时间:2018-09-23 02:14:39

标签: promise progressive-web-apps

我在一个service-worker.js文件上,试图从Progressive Web App的API端点缓存JSON数据。

这会在缓存中创建一个天气文件,但是内容是我的HTML页面。如果我使用console.log(data),则可以看到所需的对象。

我尝试过cache.add(JSON.stringify(data))和cache.addAll(data)无济于事。

self.addEventListener('install', event => {
  event.waitUntil(
    caches.open('weather')
      .then(function(cache) {
        fetch('/api/weathercurrent')
          .then(function(response) {
            return response.json();
          })
          .then(function(data) {
            cache.add(data);
          })
      })   
  )
});

1 个答案:

答案 0 :(得分:1)

解决方案比我想象的要简单。我以为因为数据是JSON,所以我需要使用请求和响应处理程序。

event.waitUntil(
  caches.open('weathercurrent')
    .then(cache => cache.add('/api/weathercurrent'))
);