【发布时间】:2011-08-27 21:29:26
【问题描述】:
一旦会话过期,我想将用户从应用程序中的任何位置重定向到“登录页面”。
我如何使用 JavaScript 来实现这一点?
【问题讨论】:
-
为什么必须使用 JavaScript?如果你可以检查它,你会怎么做?使用 setInterval?
-
是的,如果会话处于非活动状态,我希望用户重定向到登录页面
一旦会话过期,我想将用户从应用程序中的任何位置重定向到“登录页面”。
我如何使用 JavaScript 来实现这一点?
【问题讨论】:
没有必要定期检查会话是否过期,您可以做的最好的事情是检查前端触发事件的时间,例如在提交之前/点击之前等。 服务器时间是我们需要管理以提供更好的应用性能的关键资源。
【讨论】:
一个典型的会话实现需要两件事:
这些 cookie 通常设置为会话 cookie。它们在浏览器关闭时过期。因此,您无需担心测试它们来实现这一点。
要确定会话在服务器上是否仍然有效,您需要(定期)向服务器发出 HTTP 请求(您可以使用 Ajax 执行此操作)并让服务器响应有关会话生命周期的信息.
一个简单的解决方案是返回真或假,如果为假则重定向(通过设置location.href)。
更有效的解决方案是返回会话的剩余生存时间,并使用该信息确定下一次检查的时间(如果为 0,则重定向)。 更多
【讨论】:
setInterval 和您选择的 Ajax 库以及适当的服务器端逻辑,用于您的会话管理。