是否可以刷新$ _SESSION []全局变量?

时间:2012-07-06 19:24:04

标签: php javascript

我有一个PHP应用程序,它使用$ _SESSION global来管理应用程序内的数据。但是在尝试更新$ _SESSION的值时我遇到了一些问题,这是我到目前为止所做的:

  1. 做东西
  2. 未设置($ _ SESSION [ '变种'])
  3. 做东西
  4. $ _ SESSION [ '变种'] = NEWVALUE();
  5. 我使用$.post()这样调用php:

    $('#id').click(function(){
        $.post("page.php", function(data){
            //do stuff
            window.location = "goto.php";
        })
    })
    

    goto.php抓取$ _SESSION ['var']中的内容并构建一个新的html。

    但是,当网页转到goto.php时,它会加载使用上一版$_SESSION['var']创建的html。请注意,如果我刷新网页,则会加载使用新$_SESSION['var']创建的新内容。

    此外,这不是常规行为,有时它会在没有页面重新加载的情况下正确加载。

    我在这里做的根本错误是什么?

1 个答案:

答案 0 :(得分:1)

这几乎肯定是缓存问题。您可以将某些标题发送到浏览器以强制它不缓存页面,从而确保每次都重新加载。

您可以使用以下方法在PHP中执行此操作:

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

来源:How to control web page caching, across all browsers?