强制页面从服务器重新加载而不是加载缓存版本
我有网页A.用户点击表单提交数据,然后将他带到网页B.当他点击后退按钮时,我需要从服务器刷新网页A,而不是从缓存加载。 我有这个: 但它似乎没有用。 我也尝试在页面B上设置一个变量(通过php设置会话变量)然后在页面A上检查它并根据它的存在刷新(或不刷新)。 这种做法似乎也有效。 基本代码是:页面A:
<?php if(isset($_SESSION['reloadPage'])) { unset($_SESSION['reloadPage']); echo' window.location.replace("/****/****/*****.php"); '; } ?>
在第B页:
$_SESSION['reloadPage'] = 1;
使用PHP解决方案,它只是不断尝试在永无止境的循环中刷新页面。 我的逻辑缺失了什么? 这是正确的方法吗?
编辑经过进一步调查,当您告诉浏览器不缓存页面时,这是否会强制完整服务器端刷新? 这就是我需要的。 页面的完整服务器端刷新。
好吧试试这个:
您需要在第2页上设置$ _SESSION [‘form_submitted’] = true。
试试这三个:
我知道这是一个老问题,已经有了答案(不是从服务器刷新)。 所以我想用jQuery分享一个解决方案。
$('#back-button').click(function(){ setTimeout(location.reload(true), 1000); });
说明:
单击后退按钮时, setTimeout
将在1秒(1000毫秒)后触发。 然后,当重新加载内的参数为true
,页面将从服务器reload
。
如果你在reload
true
,它将从服务器重新加载,而如果你输入false
,它将从缓存重新加载。 来源w3schools 。
你的JavaScript应该……
window.location = "/****/****/*****.php"
我认为应该修复你的循环。
window.location.replace("/****/****/*****.php"); '; } ?>