在一个Angular应用中,我有一个URL端点正在被缓存,代码如下:
在客户端进行调查过程时,离线场景下它运行得非常完美。但是在管理面板中,当我尝试更新语言信息时,确实会更新数据库中的记录,但是当我尝试刷新数据时,它不会向我们的端点发送请求,而是发送到浏览器中存储的缓存中。
这是我尝试过的方法:
// ngsw-config.json
"dataGroups": [{
"name": "api-performance",
"urls": [
"https://my-api.com/v1/languages",
],
"cacheConfig": {
"strategy": "performance",
"maxSize": 300,
"maxAge": "1d"
}
}
]
在客户端进行调查过程时,离线场景下它运行得非常完美。但是在管理面板中,当我尝试更新语言信息时,确实会更新数据库中的记录,但是当我尝试刷新数据时,它不会向我们的端点发送请求,而是发送到浏览器中存储的缓存中。
这是我尝试过的方法:
getLanguages(shouldCache: boolean): Promise<any> {
if (shouldCache) {
return this.httpClient.get('https://my-api.com/v1/languages').toPromise();
} else {
const headers = new HttpHeaders({
'Cache-Control': 'no-cache, no-store, must-revalidate, post-check=0, pre-check=0',
'Pragma': 'no-cache',
'Expires': '0'
});
return this.httpClient.get('https://my-api.com/v1/languages', { headers: headers }).toPromise();
}
}
很遗憾,它不起作用。我考虑过更新缓存,但我不知道如何做。
有人有什么想法来解决这个问题吗?