如何清除HTML页面中的缓存?

4

我正在尝试在页面加载时清除浏览器缓存和/或防止页面被缓存。以下是我在 head 中的代码,但它并没有起作用:

<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="-1" />

它因浏览器而异。Google在此提供了一些建议(链接):https://support.google.com/accounts/bin/answer.py?hl=en&answer=32050 - DOK
我想从他们正在加载的页面上进行操作,而不让他们知道。 - Intecpsp
2个回答

3

你的元代码应该适用于大多数网页浏览器。然而,对于资源文件(javascript、图像、css),情况可能有所不同。大多数缓存破坏策略涉及更改资源文件的名称(可能是动态的)或使用Apache重写规则来假装名称已更改。这个谷歌搜索应该能帮助你找到正确的方法。

cache busting strategy for js

祝你好运。


1

你的元标签应该足够了。但对于资源,可能会有所不同。只需将变量附加到文件名即可,例如:

var img = new Image();
img.src = 'image.jpg?'+ Math.random()

或者

img.src = 'image.jpg?'+ new Date().getTime()

如果您正在使用JavaScript加载资源,或者您可以编写一个Apache的mod_rewrite引擎规则来自动写入随机哈希。
然而,我相信必须有更优雅的解决方案。

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