如何显示足够智能的会话超时警告,以处理多个打开的浏览器或选项卡

Joe*_*oel 17 javascript session session-timeout browser-tab

我已经使用javascript实现了会话超时警告,该警告只是询问用户是否要扩展其会话或注销.问题在于,这适用于内部网门户,其中高级用户通常会同时打开多个浏览器窗口或选项卡到应用程序.目前,系统会提示他们即将从每个浏览器窗口注销.如何让代码更智能地检测到他们正在使用其他浏览器会话?

Dio*_*ane 2

您必须使用 Ajax 检查服务器上的会话状态并跟踪用户拥有的所有打开的会话/窗口。然后,您就可以仅针对可用会话之一发出注销警告。

回复您的评论:

不要使用内置的会话机制,使用服务器端持久数组或数据库日志设计自己的会话机制。

不,HTTP 请求中没有任何内容告诉您打开了多少个浏览器,但您可以在用户打开每个浏览器窗口时分配自己的 sessionID cookie。对服务器进行 Ajax 调用,查看用户是否超时,如果您是会话日志中的最低(或最后)条目,那么您就是收到警告的浏览器。

  • 2 个想法:1)如何在不实际扩展会话的情况下检查 .NET 应用程序的会话状态?2)实际上有没有办法知道用户有多少个浏览器窗口?http 请求中没有任何内容告诉您这一点 (2认同)