HTML5中没有缓存机制。

7
在HTML4中,我们使用了像这样的东西:
    <meta http-equiv="Pragma" content="no-cache" />
    <meta http-equiv="Cache-Control" content="no-cache, must-revalidate" />
    <meta http-equiv="Expires" content="Thu, 01 Jan 1970 00:00:00 GMT" />

为了让浏览器不缓存页面,HTML5中应该使用什么?我想完全不要有任何页面被缓存。我看到有关这个的一些内容。
    <html manifest="example.appcache">
      ...
    </html>

但是似乎要指定整个Web应用程序中的所有页面才能让浏览器不缓存任何内容,这看起来很麻烦。

有更简单的方法吗?

如果我从html标签中省略manifest部分,那么浏览器会不会不缓存任何东西?也就是说:

    <html>
      ...
    </html>

或者它会将其视为允许缓存所有内容的操作?

清单文件指定了应用程序缓存的设置 - 这是 HTML5 的一个非常酷的新功能,但与您正在尝试的内容无关。我建议现在先不要使用它。我的经验表明,它还没有完全准备好。 - Chris Broski
3个回答

4

答案#12693786可能会有帮助。

以下是一个your-manifest-file的示例,用于强制更新所有资源。

CACHE MANIFEST
NETWORK:
*

并在<html>元素上添加manifest属性。
<html manifest="your-manifest-file">

如果您想禁用缓存,这个标签是所有HTML文件必须包含的。
因为它是HTML5规范的一部分,所以无法避免。


2
请注意,此缓存清单功能已从Web标准中移除。 - Totor

2

缓存设置最好由Web服务器的响应头来处理。我建议您研究更改这些设置。可以添加一个类似于以下的标头:

Cache-Control: max-age=0,no-cache,no-store,post-check=0,pre-check=0

根据我的经验,停用缓存功能可以解决问题。在任何版本的HTML中,使用meta标签设置缓存行为时,我从未获得过一致的预期结果。


1
在你的 PHP 脚本顶部添加 header("Cache-Control: max-age=0,no-cache,no-store,post-check=0,pre-check=0"); - Fanky

0

我认为如果您省略清单属性,它会默认为无缓存。我知道在Firefox上,您可以使用附加工具,如Firebug或HttpFox来检查页面是否被缓存。不确定其他浏览器,但很可能在开发者工具的“网络”选项卡下。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接