2011-07-15 76 views
0

我已经系统跟踪用户的工作时间和工作流程是这样的:
关闭浏览器的问题再次

如果他用户登录/她是在和有扣纽扣输出/输入按钮也注销处理事件。

问题是,当用户关闭浏览器/标签,我不能处理他或她是出来。我已阅读关于处理浏览器/选项卡关闭事件,但不幸的是,这实际上是不可能的。我的下一个方法不是更可靠,使用Cookie,当页面加载该页面时页面onUnloads会保存cookie,并且当用户登录时,我将获得包含用户上次活动并更新出时间的cookie值。但是缺点是用户可能会通过不同浏览器/机器来到网站,而这些浏览器/机器没有关于上次活动的适当信息。

+0

*“请给我你的想法”*提出问题。 (不,添加一个'?'到*“浏览器关闭问题再次结束?”*不会**使它成为一个问题。) –

回答

0

你尝试通过Window.addCloseHandler()添加是closeHandler。它在用户关闭窗口/选项卡时调用。在处理程序中,您可以向服务器发送关闭消息或其他内容。

+0

是的,我已经尝试过,但问题是它使用onUnLoad处理关闭事件,如果刷新页面或浏览本事件触发该事件。 –

+0

我认为,因为GWT通常是单页面应用程序,所以这种情况不会经常发生。如果发生这种情况,您可以在用户刷新页面/导航并重新打开相同页面时检查关闭事件和重新打开之间的时间是否在某个时间限制内,以及是否忽略了先前关闭事件。 –

0

我个人会看会话对象。当到期时,你可以做任何你需要做的事情。

0

你可以做的是服务器的JavaScript调用每分钟(使用Javscript定时器功能如下解释:http://www.w3schools.com/js/js_timing.asp)。

但我不知道使用的浏览你的方法是正确的。根据定义,浏览器/服务器连接没有连接。由于HTTP协议不提供这些功能,Cookie只是维持连接的一种方式。

第二点是:要保持跟踪,当用户从其他浏览器连接。用户如何在同一时间使用两种不同的浏览器?你如何检测用户(他应该在浏览器打开时进行身份验证,还是可以依赖IP地址)?我建议有一个适当的应用程序来处理这个问题:不是浏览器应用程序。编写一个应该不是很复杂。

好,小程序和Adobe Flash可以增强浏览器功能的解决方案......