我有一个Angular 9应用程序,它对应用程序接口进行http.get调用。我已经实现了angular-pwa来支持离线功能。
我很难弄清楚的是,当浏览器在线时,我不想对2个给定的请求使用缓存的响应。
我尝试设置我的ngsw-config.json
..。
"dataGroups": [
{
"name": "api-performance",
"urls": [
"**/assets/**",
"**/api/**",
"**/materialicons/**"
],
"cacheConfig": {
"strategy": "performance",
"maxAge": "12h",
"maxSize": 200,
"timeout": "50s"
}
},
{
"name": "api-freshness",
"urls": ["**/api/always-get-fresh**", "**/api/always-get-fresh2**"],
"cacheConfig": {
"strategy": "freshness",
"maxAge": "12h",
"maxSize": 200,
"timeout": "50s"
}
}
]……为了对两个特定的http get使用刷新策略,我希望刷新,并指定其余部分为性能。
我还尝试在导航器重新联机时删除缓存
在app.component.ts中
addEventListener('online', (e) => {
caches.keys().then((cacheNames) => {
return Promise.all(
cacheNames
.filter((cacheName) => {
return true;
})
.map((cacheName) => {
if (cacheName.search('api-freshness') !== -1) {
return caches.delete(cacheName);
}
return false;
})
);
});
});到目前为止,两次尝试都没有成功。
发布于 2020-10-14 04:22:47
原来问题出在dataGroups的顺序上。
我把性能放在新鲜度之后,两个http get总是调用服务器,除非离线。
删除缓存部分是无用的,我删除了它。
https://stackoverflow.com/questions/64342035
复制相似问题