如何从客户端使浏览器缓存中的页面无效?

时间:2009-08-19 18:52:02

标签: php javascript browser caching header

我需要客户端(使用javascript)使其拥有的页面无效并基本上获取新版本?

我以为我可以使用标题来完成所有操作:Invalidating cached content, If-Modified Headers?

如果没有办法让浏览器刷新当前的缓存版本,而没有发出新的请求(通过新的URL)......那么可以使用相同的原始URL请求来查看更新的内容?

4 个答案:

答案 0 :(得分:7)

如果您想重新加载当前页面,您可以这样做:

location.reload(true);

否则“传统”方式是在末尾添加随机查询字符串

'...?rnd=' + Math.random();

答案 1 :(得分:6)

您不能使用javascript,解决问题或使用方法POST而不是GET或使用nocache random parameter trick

如果您想了解更多信息,请参阅: Is it possible to cache POST methods in HTTP?

答案 2 :(得分:3)

当您引用该页面时,在末尾添加一个随机变量。例如:

document.location.href = 'mypage.html?randomVar=454068934';

这将确保非缓存版本。我建议使用javascript生成的guids。

答案 3 :(得分:1)

我所做的是在网址中传递一个随机参数。即如果我需要获取products.php我称之为products.php?rand = 23443545。 这样缓存不会干扰。