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

时间:2014-06-19 05:00:16

标签: javascript asp.net-mvc caching browser

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

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

要求:     我希望客户端不断从自己的缓存中重新加载页面,直到我告诉它(通过SignalR)页面已经过时。然后,如果我可以从本地缓存中刷新那个页面,那么下次用户查看它时,它将从服务器中提取最新版本。因此,它将再次在本地缓存。

为什么吗     页面上的数据需要很长时间才能下载并且javascript会为渲染时间增加秒数。通常它会保持静止30分钟或更长时间。但偶尔它会每分钟改变一次。所以固定的时间间隔缓存,不起作用。

ASP MVC让我使服务器上页面的输出缓存无效。哪个好。如果我能在客户端上做同样的事情,那将是一个非常棒的速度提升。

注意:我不是在改变CSS,图像或Javascript。我只是想要删除很多JScript&每次数据更改事件时,在服务器上执行大部分HTML呈现。

1 个答案:

答案 0 :(得分:0)

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

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

每次网址发生变化时,浏览器都不会使用缓存副本,而是从服务器获取文件。

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