您可以通过几种方式做到这一点。一,只需将此元标记添加到您的head:
<meta http-equiv="Cache-control" content="no-cache">
如果您想从缓存中删除文档,expires 元标记应该可以通过将其 content 属性设置为 -1 来删除它,如下所示:
<meta http-equiv="Expires" content="-1">
http://www.metatags.org/meta_http_equiv_cache_control
此外,IE 应该为您提供主页的最新内容。如果您在使用外部文档(如 CSS 和 JS)时遇到问题,请在您的 URL 末尾添加一个虚拟参数,当前时间以毫秒为单位,这样它就不会相同了。这样 IE 和其他浏览器将始终为您提供最新版本。这是一个例子:
<script src="mysite.com/js/myscript.js?12345">
更新 1
阅读 cmets 后,我意识到您想以编程方式擦除缓存,而不是每次都擦除。你可以做的是在 JS 中有一个函数,比如:
eraseCache(){
window.location = window.location.href+'?eraseCache=true';
}
然后,假设在 PHP 中,您执行以下操作:
<head>
<?php
if (isset($_GET['eraseCache'])) {
echo '<meta http-equiv="Cache-control" content="no-cache">';
echo '<meta http-equiv="Expires" content="-1">';
$cache = '?' . time();
}
?>
<!-- ... other head HTML -->
<script src="mysite.com/js/script.js<?= $cache ?>"
</head>
这未经测试,但应该可以工作。基本上,如果调用您的 JS 函数,它将重新加载页面,但会在 URL 的末尾添加一个 GET 参数。然后,您的站点将有一些用于查找此参数的后端代码。如果存在,它会添加元标记和包含时间戳的缓存变量,并将其附加到您遇到缓存问题的脚本和 CSS。
更新 2
元标记确实不会在页面加载时删除缓存。因此,从技术上讲,您需要在 JS 中运行 eraseCache 函数,一旦页面加载,您需要再次加载它以进行更改。您应该能够使用服务器端语言解决此问题。您可以运行相同的 eraseCache JS 函数,但不需要添加元标记,您需要添加 HTTP 缓存标头:
<?php
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
?>
<!-- Here you'd start your page... -->
此方法无需重新加载页面即可立即工作,因为它会在页面加载之前以及运行任何内容之前擦除缓存。