2013-02-06 40 views
0

用户正在访问网站并打开了多个选项卡。如果其中一个选项卡处于活动状态,并且在所有选项卡处于非活动状态时使其死亡,如何在多个选项卡上保持会话活动

会议应保持活着的时候:
任何选项卡被激活(鼠标移动键盘上&击键)。

会议应该死,然后重定向到自动登录页面时:
所有的标签是不活动(不移动鼠标,无击键)

能否请你提示我如何做到这一点?

+1

我希望你认识到服务器不知道标签,对不对? –

回答

0

这是一个肮脏的解决方案,而我还没有尝试过,但是这在理论上可以工作:

  1. 当你发现页面上的活动,保存一个标志在数据库表来表示页面上有活动(可能还需要时间戳来帮助您确定活动发生的时间以及用户标识符,以确保它是正确的会话)。根据您想要保存的频率,您可以使用像这样的简单脚本(https://stackoverflow.com/a/3877867/987905)来跟踪最近的击键或任何想要跟踪的内容,然后在一段时间(例如5分钟)之后,如果有任何活动,则决定将其保存到数据库(这样每次有活动检测时都不会进行数据库保存)。
  2. 在检查会话是否处于活动状态期间,请检查数据库中的标记和时间戳,以查看会话是否已在该用户登录的任何实例上报告为活动。如果是,请重新激活会话通过你的活着,或重新认证。

再一次,我没有尝试过这个,但最近一直在想它。这似乎是一个可行的解决方案,只是在幕后制作数据库保存/调用的缺点,可能会损害性能。

相关问题