Aurelia获取客户端缓存URL

时间:2020-06-03 15:05:44

标签: google-chrome caching aurelia aurelia-fetch-client

我有一个使用HttpFetch中的aurelia-fetch-client v1.8.2的Aurelia应用。我遇到的问题是Chrome浏览器在我的部署之间缓存了一些GET请求URL。

例如一个特定的请求将发送到.../api/v1/users,但此后已更改为.../api/v1/users?somequerystring=value,但是客户端报告正在使用旧的URL。大约有3/4个用户正在发生这种情况。由于某些原因,我本人和少数用户可以正常工作,并且使用更新的GET URL发出请求。

过去,我经历过响应缓存,此后将'?cacheBust=' + new Date().getMilliseconds()添加到每个GET URL请求中以确保唯一性,但是这种新型缓存对我来说是陌生的。

值得注意的是,这可能是一些JS文件缓存,因为用户正在查看更新的前端页面。

打开开发人员控制台并执行Empty Cache and Hard Reload显然是可行的,但是我希望用户在每次更新请求URL时都需要这样做。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

正如您自己所提到的以及评论,请检查它是否不仅仅是缓存不正确的.JS文件。

话虽如此,如果您确信它与fetch客户端或远程调用有关,则可能需要查看本机fetch()API的Request.cache属性。考虑到aurelia-fetch-client库只是围绕本机API的包装器,您可以尝试以下方法:

const response = await _http.fetch('endpoint', { cache: 'no-store' });

在指向文档的引用链接中有很多其他示例。简而言之,no-store选项告诉浏览器无需先查看缓存就可以从远程服务器获取资源。