我搜索,找到一些例子使用jQuery来设置空闲超时。
1 - 空闲超时由Eric海因兹DEMO
2 - 空闲定时器通过paulirish
3 - 火灾事件当用户空闲 / DEMO这里
4 - 检测用户是网页上的活动或闲置
5 - 彗星长轮询与PHP和jQuery
6 - detacting空闲超时的JavaScript
......和其他几个类似的例子
这些例子之间的1号是更好地为我需要因为我需要自动注销用户与X分钟后的任何确认警报(logout.php或任何URL)。 但这种方法不适合服务器。 问题是:这个jQuery代码发送Ping到任何网址:keepAlive.php中环/汇集的要求确定文本。 看到萤火虫屏幕:
如何解决这一问题? 因此,其他的例子只印空闲/没有空闲,而不是与警示确认和自动退出(logout.php或任何URL)现在确实更好的工作方式使用jQuery / PHP来选择空闲超时?
谢谢
我在后x秒的头部部分自动将用户定向到注销页面使用元刷新元素。 下面将20分钟住在同一页上的后自动发送用户注销页面:
<meta http-equiv="refresh" content = "1200; url=http://www.site.com/user/logout">
此作品,是(大部分)支持跨浏览器,使能不依赖于JavaScript,是很容易实现。
如果您的网站有留在同一页上的时间过长(要与交互发生通过JS,例如)的用户,该解决方案将不会为你工作。 它也不允许重定向发生之前运行任何JS代码。
这里是我的方法,我方法,建立使用JavaScript和jQuery一个简单的自动注销功能。 这个脚本构建为使用的网页时,在25分钟内未检测到鼠标移动,将自动转到登出页面。
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<script type="text/javascript" language="javascript">
var idleMax = 25; // Logout after 25 minutes of IDLE
var idleTime = 0;
var idleInterval = setInterval("timerIncrement()", 60000); // 1 minute interval
$( "body" ).mousemove(function( event ) {
idleTime = 0; // reset to zero
});
// count minutes
function timerIncrement() {
idleTime = idleTime + 1;
if (idleTime > idleMax) {
window.location="LogOut.php";
}
}
</script>
<script>
var idleMax = 5; (5 min)
var idleTime = 0;
(function ($) {
$(document).ready(function () {
$('*').bind('mousemove keydown scroll', function () {
idleTime = 0;
var idleInterval = setInterval("timerIncrement()", 60000);
});
$("body").trigger("mousemove");
});
}) (jQuery)
function timerIncrement() {
idleTime = idleTime + 1;
if (idleTime > idleMax) {
window.location="Your LOGOUT or Riderct page url here";
}
}
</script>