使用javascript强制刷新浏览器文件缓存



我在Splunk中有生成.docx报告的python脚本。

当这个报告创建后,我将收到这个文件的链接,我在我的html/js面板上使用这个链接向用户提供下载链接。该文件位于Splunk实例中,Splunk有自己的缓存,但此缓存已用version _bump清除。

问题(可能(是浏览器正在缓存文件,如果我生成具有不同内容的新报告,那么我会继续下载旧文件而不是新文件。

只有当我Empty cache and hard reload网页时,我才能下载新版本的文件。

我可以通过在python中创建不同名称的文件来解决问题,但这与最后一个可能的解决方案类似。我希望只生成一份报告。

有没有办法清除这个缓存并使用javascript进行硬重新加载,或者如何强制浏览器下载新版本的文件?

浏览器根据给定的URL缓存文件。为了通过前端浏览器控制缓存,只需将?cachebust=TIMESTAMP添加到URL中,其中TIMESTAMP只是new Date().getTime()。由于您将它作为查询参数添加,它仍然会从后端请求相同的资源,因此您不必在服务器端做任何花哨的事情。

如果你想对它进行版本控制,以便在缓存被破坏时有更多的控制权,你可以使用一个只在你想破坏缓存时增加的数字。重要的是URL的更改。

http://www.example.com/someFile.txt?cacheBust=109230110238

最新更新