我有一个渐进的网络应用程序,它与API有关。对这个api的调用由服务工作者缓存,效果很好。
但是现在,我想添加一个重新加载按钮,它理想地强制服务工作者试图绕过缓存并在成功时更新它,如果无法建立连接,它也不应该返回缓存结果。 / p>
我有点不确定如何解决这个问题。我使用的是sw-toolbox。
答案 0 :(得分:0)
根据您的描述,您正在使用应用程序缓存。它可以从独立于sw工具箱的应用程序访问。
function onReloadButtonClicked(event) {
//Check for browser cache support
if ('caches' in window) {
//Update cache if network query is successful
caches.open('your_cache_name')
.then(function(cache) {
cache.add('your_url');
}).catch(function(err) {
// Do something with the error
});
}
}
答案 1 :(得分:0)
所有请求都通过fetch回调接收request object。因此,在返回缓存响应之前,您可以look for an additional标头参数(您需要将其包含在API请求中)以跳过logic returning cached response。