【问题标题】:How to warn user before session timeout ends in javascript?如何在会话超时以javascript结束之前警告用户?
【发布时间】:2018-01-17 15:13:47
【问题描述】:

我遇到了一个小问题,我的 web.xml 中的会话超时 15 分钟。但是,在 javascript 中,我尝试在达到 15 分钟之前警告用户 5 分钟,但是当它警告用户并且用户单击“确定”时,网络应用程序将不再工作。我要做的就是警告用户会话超时,然后当他们按下确定时,他们仍然可以使用网络应用程序。然而,当会话超时时间到时,我希望他们单击​​“确定”并将他们带到不同的网页。感谢您的帮助。

【问题讨论】:

  • 这是一个需要解决的重要问题。我所做的是向客户端发送每个 HTTP 响应指令以重新启动会话计时器。应该运行计时器,使其每秒唤醒并检查时间;您必须处理减慢计时器的浏览器。具体如何设置取决于您的应用程序的性质。
  • 请记住,打开多个选项卡/窗口到您的网站会设置多个具有不同到期时间的计时器。

标签: javascript session


【解决方案1】:

第一件事:当您想在 15 分钟超时前 5 分钟警告用户时,应在页面加载后 10 分钟显示警告。

setTimeout( function() { alert("Your session will expire in 5 minutes."); }, 10*60*1000);

如果您想在 15 分钟后将用户重定向到不同的页面,您实际上并不需要用户确认。

setTimeout(function() {
    window.location = "timeout.xhtml";
}, 15*60*1000); 

那么,超时实际发生在什么时候?

使用多个标签,您的用户可以在 2 个标签中使用该应用。第二个选项卡中的操作将防止应用程序超时。一种方法是重新加载页面并让服务器处理超时和重定向部分。另一种选择(首选)是定期检查会话是否仍然存在。请注意:您的会话检查不应延长超时期限。

【讨论】:

  • 好的。这意味着,我不需要我的 else 语句,我可以只使用 setTimeout 来应用它?
  • 鉴于会话已经过期,你想显示超时,保持当前页面没有任何意义。所以不需要else
  • 无论如何,如果答案满足您的问题,请采纳。
猜你喜欢
  • 2014-07-18
  • 2015-07-29
  • 2016-02-18
  • 2014-03-31
  • 2011-05-23
  • 2021-03-28
  • 2014-11-09
  • 2012-07-17
  • 1970-01-01
相关资源
最近更新 更多