2013-06-11 91 views
0

我正在编写一个内部业务应用程序,并且我有一个要求来跟踪用户在特定任务上花费的时间。用户正在填写表单,但他可以访问其他页面/文档以获取所需的信息。 简单的方法是如果用户在5分钟内没有与页面进行交互,则假定用户为AFK。但是 - 它会有5分钟的不准确性,它会忽略短于5分钟的分钟等。如果他们花费30分钟阅读一些大型文档,它将会彻底崩溃。从浏览器检测用户是AFK

更好的方法是以某种方式检测到用户不移动他的鼠标/不使用键盘 - 完全不仅仅在这个特定的浏览器窗口中。 是否有可能以合理的方式实现?用户没有安装Flash或Java(闪光灯可以使用吗?)。 我需要支持IE8和Chrome。

+0

只需将事件绑定到常用鼠标/键盘事件的文档/正文即可。如果在一段时间内没有任何事情发生,他们可以被视为AFK。所以这意味着查看'setTimeout' – Ian

回答

2

一个简单的解决方案将是把的onclick和的onkeydown体内

喜欢的东西

<body onclick='this.resetTime();' onkeydown='this.resetTime();'> code </body> 

当然,如果你有哪些需要做的点击事情等功能/ KEYDOWN可以嵌入在他们内部的重置时间。

this.resetTime()也只是伪装函数,你必须自己创建。

+0

这就是我所说的“简单方法”。我知道我可以做到这一点,这是不足够的,因为我提到的原因。问题是如何做得更好? – mabn