【问题标题】:HTML5 LocalStorage to maintain session across pages/tabs under same domainHTML5 LocalStorage 维护同一域下的页面/选项卡之间的会话
【发布时间】:2017-02-08 15:06:28
【问题描述】:

任何人都可以提供我的方法,我可以在 Javascript 中使用 HTML5 LocalStorage 来维护服务器和客户端之间的会话,以跟踪会话超时,这将重定向会话过期页面中的所有选项卡或页面。

有什么方法(除此之外)我可以在同一域下的页面/标签之间维护会话以跟踪会话超时。

提前致谢

【问题讨论】:

  • LocalStorage 是……本地的。它根本没有连接到服务器。它似乎不是适合这项工作的工具。
  • 我需要一些全局对象,我可以在相同的父网页/标签中引用它,所以只要求 localStorage

标签: javascript html session-state


【解决方案1】:

在 HTML5 中,您可以使用 session 将对象从页面传递到另一个页面:

// 将数据保存到 sessionStorage

sessionStorage.setItem('key', 'value');

// 从 sessionStorage 中获取保存的数据

var data = sessionStorage.getItem('key');

// 从 sessionStorage 中删除保存的数据

sessionStorage.removeItem('key')

More Information

【讨论】:

  • 这对问题所问的“维护服务器和客户端之间的会话”有何帮助?
【解决方案2】:

sessionStorage 对象与 localStorage 对象相同,只是它只存储一个会话的数据。当用户关闭特定的浏览器选项卡时,数据将被删除。

【讨论】:

  • 虽然这是真的,但我不确定它是如何回答这个问题的。
【解决方案3】:

您还没有发布任何代码,所以我唯一能为您做的就是向您展示一个通用示例,它可能不完全符合您的要求,但会告诉您如何做到这一点:

// show last settings pane if it's set
if ( localStorage.activePill ) {
    $('.nav-pill-control > li').removeClass('active');
    $('.nav-pill-control > li > a[href="' + localStorage.activePill + '"]').parent().addClass('active');
    $('.nav-pill-pane').hide();
    $(localStorage.activePill).show();
}

【讨论】:

  • 问题是“维护服务器和客户端之间的会话”。这对服务器有何影响?
猜你喜欢
  • 2012-08-01
  • 1970-01-01
  • 2017-08-18
  • 1970-01-01
  • 2015-01-08
  • 1970-01-01
  • 1970-01-01
  • 2021-07-25
  • 1970-01-01
相关资源
最近更新 更多