我怎么可以检查以确保一个窗口正在积极使用,如果没有警报的终端用户,他们是要被记录?

StackOverflow https://stackoverflow.com/questions/105147

  •  01-07-2019
  •  | 
  •  

工作上一个新的后端系统为我的公司,与一个他们的要求是一窗口成为封锁和对用户发送给登陆屏幕上,如果他们离开这闲置于长。

我想我会做这JavaScript通过附加的听众来点击鼠标和关键的但我担心搞乱其他的脚本。

任何建议?

有帮助吗?

解决方案

首先,为了使其有效,您必须确保用户在此空闲时间结束时在服务器上注销。否则,您在客户端执行的任何操作都无效。如果您将它们发送到登录页面,他们只需单击后退按钮即可。

其次,执行此操作的传统方式是使用“元刷新”。标签。将其添加到页面:

<meta http-equiv="refresh" content="900;url=http://example.com/login"/>

将在15分钟(900秒)后将其发送到登录页面。即使他们在页面上做某事,它也会将它们发送到那里。它不会检测活动。它只知道页面在浏览器中的持续时间。这通常是足够好的,因为人们不需要15分钟来填写页面(我猜想stackoverflow.com是一个值得注意的例外。)

如果您确实需要检测页面上的活动,那么我认为您的第一直觉是正确的。您将不得不将事件处理程序添加到几个方面。如果您担心使用其他脚本进行验证或其他事情,您应该考虑以编程方式而不是内联方式添加事件处理程序。也就是说,而不是使用

<input type="text" onClick="doSomething;">

使用

直接访问对象模型
Mozilla way:   element.addEventListener('click' ...)
Microsoft way: element.attachEvent('onclick' ...) 

然后确保在收到事件后传递事件,以便现有代码仍然执行它应该做的任何事情(验证?)。

http://www.quirksmode.org/js/introevents.html 对于如何做到这一点有一个很好的写作。

- 点击 BMB

其他提示

如果用户长时间没有更改页面,您可以让它注销。这就是天使学习课件系统似乎的作用。

但是,您将遇到的另一个问题是某些用户禁用了JavaScript。

如果你可以把代码页上然后有两件事情:

  • Javascript寻找鼠运动,键盘活动和滚动。
  • 把一个阶刷新标签的html-如果他们在该页面为超过X分钟它就会自动重新定向,以登录网页。

如果你只能把代码的服务器:

  • 保留一届会议(cookie或其他),跟踪多久页间的变化。如果一个页面被请求超过X分钟由于最后一个请求,不服务的请求的网页,为登录的网页。

你可以使用的元刷新和服务器技术在一起。刷新的网页将会去到一个"你届会议即将到期,请回去继续工作,在30秒"。

按钮他们按重置服务器的会议,并执行一个网页回功能,因此任何数据他们(在多数浏览器)将仍然存在。需要javascript上刷新网页,但没有在原有网页-只是一个阶刷新。Javascript活动的跟踪将是最好的。

-亚当

在页面的加载事件中,您可以使用setTimeout触发一个函数,警告用户如果他们不刷新页面,他们将被注销。

在5分钟的会话超时后,您可以在4分钟后发出警告:

setTimeout(timeoutWarning, 240000);

function timeoutWarning() {
  if(confirm('You have been idle for a while.  Would you like to remain logged in?'))
    window.location.refresh();
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top