我有一个PHP应用程序,它使用$_SESSION全局来管理应用程序内的数据。但是,我在尝试更新 $_SESSION 的值时遇到了一个小问题,这就是我到目前为止所做的:
- 做事
- unset($_SESSION['var'])
- 做事
- $_SESSION['var']=newValue();
我使用这样的$.post()
调用 php:
$('#id').click(function(){
$.post("page.php", function(data){
//do stuff
window.location = "goto.php";
})
})
goto.php
从 $_SESSION['var'] 中获取内容并构建一个新的 html。
但是,当网页转到goto.php
时,它会加载使用最新版本创建的html $_SESSION['var']
。请注意,如果我刷新网页,它会加载使用新$_SESSION['var']
创建的新内容。
此外,这不是常规行为,有时它会在没有重新加载页面的情况下直接加载。
我在这里做了什么根本性的错误?
这几乎可以肯定是一个缓存问题。您可以将某些标头发送到浏览器以强制它不缓存页面,从而确保每次都重新加载。
您可以在 PHP 中使用以下命令执行此操作:
header('Cache-Control: no-cache, no-store, must-revalidate'); // HTTP 1.1.
header('Pragma: no-cache'); // HTTP 1.0.
header('Expires: 0'); // Proxies.
来源:如何在所有浏览器中控制网页缓存?