Language agnostic 确保在返回时重新加载页面

Language agnostic 确保在返回时重新加载页面,language-agnostic,Language Agnostic,至少在chrome中,当我点击后退按钮时,它实际上并没有重新加载页面,我猜它只是使用了一个存储的副本。我如何确保当有人这样做时,页面被重新加载?如果你在asp.net世界,我相信你需要做的就是 Response.Cache.SetCacheability(HttpCacheability.NoCache) 如果你在asp.net的世界里,我相信你所需要做的就是 Response.Cache.SetCacheability(HttpCacheability.NoCache) 在您的页面加载中,

至少在chrome中,当我点击后退按钮时,它实际上并没有重新加载页面,我猜它只是使用了一个存储的副本。我如何确保当有人这样做时,页面被重新加载?

如果你在asp.net世界,我相信你需要做的就是

Response.Cache.SetCacheability(HttpCacheability.NoCache)

如果你在asp.net的世界里,我相信你所需要做的就是

Response.Cache.SetCacheability(HttpCacheability.NoCache)

在您的页面加载中,我没有尝试过,但您可以尝试将缓存控制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>

var bb=document.getElementById('back_按钮');
如果(bb.value!=“0”){
location.href=location.href+'?rand='+parseInt(Math.random()*9999);
}
bb.value='1';

这将打开当前页面,但会在任何缓存中附加一个“rand”查询字符串参数。

我还没有尝试过,但您可以尝试将缓存控制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>

var bb=document.getElementById('back_按钮');
如果(bb.value!=“0”){
location.href=location.href+'?rand='+parseInt(Math.random()*9999);
}
bb.value='1';

这将打开当前页面,但会在任何缓存后附加一个“rand”查询字符串参数。

在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发送到客户端


请参阅Wikipedia的,以获取关于每一项的信息。

在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发送到客户端

请参阅Wikipedia的,以了解每一项的信息