我用ReactJS构建了一个渐进式Web应用程序,但遇到了问题。我正在使用mockApi来获取数据。 离线时,我的应用程序无法工作,因为服务工作者仅缓存静态资产。
如何将来自嘲笑Api的HTTP GET调用保存到缓存存储中?
答案 0 :(得分:0)
除了静态资产外,您还可以定义要缓存的URL:
var CACHE_NAME = 'my-cache_name';
var targetsToCache = [
'/styles/myStyles.scss',
'www.stackoverflow.com/'
];
self.addEventListener('install', function(event) {
event.waitUntil(
caches.open(CACHE_NAME)
.then(function(cache) {
return cache.addAll(targetsToCache);
})
);
});
然后,您必须指示服务人员拦截网络请求,并查看与targetsToCache
中的地址是否匹配:
self.addEventListener('fetch', function(event) {
event.respondWith(
caches.match(event.request).then(function(response) {
// This returns the previously cached response
// or fetch a new once if not already in the cache
return response || fetch(event.request);
})
);
});
如果您有兴趣进一步了解,我写了series of articles about Progressive Web Apps。