使单个页面的浏览器缓存无效

Invalidate Browser cache for a single page

本文关键字:缓存 无效 浏览器 单个页      更新时间:2023-09-26

我意识到5年前有人问过类似的问题。我希望今天会有一个更好的答案。

是否有一种程序化的方式告诉浏览器该页面的缓存版本过期&下次从服务器请求刷新?基于时间的过期不够快。

要求:我希望客户端不断地从自己的缓存中重新加载页面,直到我(通过SignalR)告诉它页面已经过时。然后,如果我能从本地缓存中刷新那个页面,下一次用户查看它时,它就会从服务器中取出最新的版本。所以它还是会被本地缓存。

为什么?页面上的数据需要很长时间才能下载& &;javascript在渲染时间上增加了秒数。通常它会保持静止30分钟或更长时间。但偶尔它会在一分钟内改变几次。所以固定时间间隔的缓存是行不通的。

ASP MVC允许我在服务器上使页面的输出缓存失效。这很好。如果我能在客户端做同样的事情,这将是一个惊人的速度提高。

注意:我没有改变CSS,图像或Javascript。我只是想去掉很多JScript &在服务器上完成大部分HTML呈现,每个数据更改事件一次。

在我的项目中有类似的情况,我们希望所有客户端在每次发布后都使用最新版本的文件。它是一个简单的spring MVC应用程序。我们应用的修复是我们创建了一个jsp标签,它将向发送到服务器的所有URL添加版本号,如:

www.abc.com/test.html/1
www.abc.com/test.html/2

每次像这样改变URL时,浏览器不会使用缓存副本,而是从服务器获取文件。

版本号,您可以保存在配置文件中,并在每次发布后更改。