按浏览器的后退按钮(重新加载页面)时更新$ _SERVER [' SCRIPT_NAME']

时间:2017-10-17 14:32:23

标签: php html safari

在Safari 10.1.1中,浏览器的后退按钮不会重新加载目标页面,因此$_SERVER['SCRIPT_NAME']不会更改。

当按下浏览器的后退按钮时,有没有办法重新加载目标页面。我尝试了以下方法:

header("Cache-Control: no-cache, no-store, must-revalidate"); // HTTP 1.1.
header("Pragma: no-cache"); // HTTP 1.0.
header("Expires: 0"); // Proxies.

这不起作用。

背景:我尝试在PHP中构建可靠的页面历史记录,但是如果浏览器的后退按钮没有触发服务器上的任何内容,我该怎么办?

谢谢!

1 个答案:

答案 0 :(得分:1)

在您的情况下,浏览器不会全部调用服务器。 在大多数情况下,浏览器只会显示" local / cached"上一页的版本,并且不会启动与服务器的连接。

您可能会在这里找到一些强制重新加载的JavaScript解决方案: How to force reloading a page when using browser back button?或此处How to refresh page on back button click?

最相关的部分是使用windows.performance对象。

if(!!window.performance && window.performance.navigation.type === 2)
{
    window.location.reload();
}