至少在chrome中,当我点击后退按钮时,它实际上并没有重新加载页面,它只是使用存储的副本我猜。我怎样才能确保当有人这样做时,会重新加载页面?
答案 0 :(得分:2)
我还没有尝试过,但您可以尝试使用您的文件发送Cache-Control HTTP标头。例如在PHP中:
header('Cache-Control: no-cache,no-store,max-age=0');
这将告诉您的浏览器(以及沿途的缓存)不要在任何情况下缓存此文件。但是,在单击后退按钮时传递前一个文件不一定被视为缓存,因此可能会忽略此类标题。
如果您真的想避开后退按钮,可以尝试使用Javascript。我真的不推荐这种方法 - 你应该退一步思考你为什么要这样做。也就是说,HTML体内的这些代码应该可以工作:
<input type="hidden" id="back_button" value="0" />
<script>
var bb = document.getElementById('back_button');
if (bb.value !== '0') {
location.href = location.href + '?rand=' + parseInt(Math.random()*9999);
}
bb.value = '1';
</script>
这将打开当前页面,但附加了一个'rand'查询字符串参数来填充任何缓存。
答案 1 :(得分:2)
在PHP中你会这样做:
header('Expires: Mon, 20 Dec 1998 01:00:00 GMT');
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Cache-Control: no-cache, must-revalidate');
header('Pragma: no-cache');
但是,发送的标头名称对于任何服务器端编程语言都是相同的,因为它们最终都会通过HTTP传递给客户端。
请参阅维基百科的List of HTTP Headers,了解有关这些内容的信息。
答案 2 :(得分:0)
如果你在asp.net世界,我相信你应该做的就是
Response.Cache.SetCacheability(HttpCacheability.NoCache)
在你的Page_Load
中