【问题标题】:Session lost window.location.href会话丢失 window.location.href
【发布时间】:2015-03-06 20:59:07
【问题描述】:

我正在尝试将用户重定向到另一个页面宽度:

window.location.href = "url here" //relative link

但是当我这样做时,它会清除我的 sessvars.keyPageArray 变量。有人知道如何在重定向后保留会话变量吗?

这是我正在使用的 sessvars 库: http://www.thomasfrank.se/sessionvars.html

更新:我使用了 google chrome 调试器,我的脚本确实有效。出于某种疯狂的原因,它仅在我通过变量监视它时才有效,但在我只是在没有调试器的情况下正常运行时无效?为什么会这样?

【问题讨论】:

  • 我在 OP 中发布了库。我也有更新。发生了一些非常奇怪的事情。

标签: javascript html session


【解决方案1】:

仅仅因为你命名了一个变量sessvars 并没有做到这一点。根据需要使用localStoragesessionStorage 或 cookie。

当浏览器导航到另一个页面时,所有 javascript 上下文都会被卸载并丢失。

使用localStorage的示例:

window.onbeforeunload = function() {
    localStorage.setItem( "session", JSON.stringify( window.sessvars) );
};

window.onload = function() {
    window.sessvars = JSON.parse( localStorage.getItem( "session") || "{}" );;
};

【讨论】:

  • 我正在使用 sessvars 库。我认为这允许您在没有 cookie 的情况下创建会话变量?这是一个链接:thomasfrank.se/sessionvars.html
  • @user1410668 看起来非常老套,最近一次更新是在 4 年前。
  • 我明白了。这只是他们正在使用的东西。我只是一个实习生,所以我什至不确定我是否有能力决定我想使用其他东西。它似乎适用于一些示例,他们使用 sessvars 数组跟踪用户在一系列练习中获得的分数
  • @user1410668 您可以查看您的代码与其工作代码之间的差异。它还可能取决于浏览器以及页面的导航方式。这绝对不是他们可以依赖的会话数据。
【解决方案2】:

会话在服务器端

与浏览器无关。

【讨论】:

    【解决方案3】:

    JavaScript 不会在页面关闭、打开另一个页面或刷新时保留数据。 最终您可以将数据存储在 cookie 中。

    【讨论】:

      【解决方案4】:

      导致问题的一个重要原因是服务器中的 /phptmp 目录不存在或没有写入权限。

      【讨论】:

        猜你喜欢
        • 2010-11-05
        • 2015-04-18
        • 1970-01-01
        • 2013-08-10
        • 2012-05-09
        • 2012-06-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多