2011-02-17 73 views
1

我想请教您关于浏览器缓存失效的建议。将浏览器重定向到其他位置并强制刷新

假设我们已经得到了返回给客户端的HTTP标头的索引页:

Cache-Control: public, max-age=31534761 
Expires: Fri, 17 Feb 2012 18:22:04 GMT 
Last-Modified: Thu, 17 Feb 2011 18:22:04 GMT 
Vary: Accept-Encoding 

如果用户尝试再次打的索引页,这是非常有可能的是,浏览器赢得了”甚至可以向服务器发送请求 - 它只会向用户显示页面的缓存版本。

我的问题是:是否有可能创建一个Web资源(例如在uri/invalidateIndex),以便当用户点击该资源时,他被重定向到索引页,强制浏览器使其缓存失效并询问服务器的新内容?

回答

-1

有没有直接的方式要求浏览器清除其特定文件的缓存,但如果你只有少数这样的系统和大量的带宽,你可以尝试在相同的协议,主机,和端口,以便缓存开始逐出旧对象。例如,请参阅https://bugzilla.mozilla.org/show_bug.cgi?id=81640

1

我有我自己的项目类似的问题,所以我有几个建议,如果您尚未发现的一些解决方案...

  1. 我已经看到了这个作为jQuery强制Ajax请求不被缓存:它使用随机值或名称向URL添加HTTP参数,以便每个新请求都具有不同的URL,并且浏览器从不使用缓存。你实际上可以将/ invalidateIndex URI重定向到这样一个URL。问题当然是,浏览器永远不会使原始索引URL失效,并且浏览器总是会重新请求索引。

  2. 你当然可以更改HTTP标头的Cache-Control具有较小的最大年龄,说下一个小时,从而使缓存无效每隔一小时左右

  3. 而且也可以使用其中高速缓存的数据具有将与每个请求一起发送的标签,实质上向服务器询问索引是否已经改变。

2,3甚至可以合并,我认为...

相关问题