33

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

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

     <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"/>

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

4

2 回答 2

30

您展示的 Codesnippet 使浏览器在每次访问网站时都会加载该网站,这在您执行频繁更新但仍具有静态页面的情况下非常有用。

<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)mail 帐户中所做的那样,您需要让它自己刷新(页面的一部分)。在这种情况下使用 Javascript,就像在这个问题或 ajax 调用中显示的那样。

$('#something').click(function() {
    location.reload();
});
于 2013-05-23T14:45:19.370 回答
13

您在那里的值是可以的,但meta http-equiv非常不可靠。您应该使用真正的 HTTP 标头(具体如何执行此操作将取决于您的服务器,例如Apache)。

于 2013-05-23T14:33:45.860 回答