防止HTML页面的缓存

Prevent caching of HTML page

本问题已经有最佳答案,请猛点这里访问。

我有一个HTML页面。问题是,我不想让用户在每次添加新内容时刷新页面。

为了确保页面没有被缓存,我有以下代码:

1
2
3
     <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"/>
     <meta http-equiv="Pragma" content="no-cache"/>
     <meta http-equiv="Expires" content="0"/>

问题是,为了让最新的内容显示出来,我仍然需要刷新页面。我做错什么了吗?我应该使用其他标签吗?


您显示的代码片段使浏览器每次访问网站时都会加载该网站,如果您经常执行更新,但仍有静态页面,这很有用。

1
2
3
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate"/>
<meta http-equiv="Pragma" content="no-cache"/>
<meta http-equiv="Expires" content="0"/>

如果您希望它执行实时更新,例如在(g)邮件帐户中,您需要使它本身刷新(页面的一部分)。在这种情况下使用javascript,就像这个问题或Ajax调用中显示的那样。

1
2
3
$('#something').click(function() {
    location.reload();
});


这里的值可以,但meta http-equiv非常不可靠。您应该使用真正的HTTP报头(您如何做到这一点的具体细节将取决于您的服务器,例如,对于Apache)。