我正在开发基于浏览器的即时消息客户端,如果可能,此应用程序需要知道用户何时处于空闲状态。在任何主要的浏览器中,是否有办法让应用程序在系统范围内检测用户的空闲时间?如果不这样做,是否有任何推荐的技术可以检测用户上次在应用程序本身中活动的时间,以及可能在同一域下的其他页面中?
答案 0 :(得分:1)
如果用户转到不同的页面,我们可以假设他没有空闲,所以问题会减少为“当前页面上的用户是否活跃?”
您可以在身体的onMouseMove
事件中设置超时。当超时触发时,您知道用户在一段时间内处于非活动状态。如果没有,并且在超时之前收到onMouseMove
,则只需清除超时即可。
您也可以用同样的方式处理onKeyPress
。
如果用户打开您网页的多个标签,这可能会有点困难,但我会使用localStorage
来表示这些标签之间的某种通信方式。