稍微挣扎,所以任何帮助都会受到赞赏。
我们运行的网站经常使用CMS进行更新,但希望将页面缓存以供离线/慢速使用。
我们在如何从网络上提供资源方面有点失落,但在这样做时也会缓存它(或更新缓存版本)。
到目前为止,这是我们的代码,但它似乎只是从缓存中加载CSS,JS和其他页面。
非常感谢任何建议。
event.respondWith(
fetch(event.request)
.then(response => {
// Loads from network
debug(`Loading from network: ${response.url}`);
caches.open(config.cayg.key + config.version)
.then(cache => {
cache.put(event.request, response.clone());
});
return response;
})
.catch(response => {
// try cache
debug(`Loading from cache: ${response.url}`);
caches.match(event.request)
.then(response)
.catch(() => caches.match('/offline/')); // otherwise show offline
})
);
答案 0 :(得分:0)
Mozilla封装了大多数用例,并提供了不同配方/策略的示例和说明。试试"网络或缓存"策略:
https://serviceworke.rs/strategy-network-or-cache.html
(用户界面有点不直观,演示/代码链接在页面顶部)