2012-04-26 126 views
0

我搜索并找到一些示例来设置使用jquery空闲超时。自动注销闲置超时使用jquery php

1 - Idle Timeout By Eric Hynds DEMO

2 - Idle Timer By paulirish

3 - Fire Event When User is Idle/DEMO HERE

4 - detect user is active or idle on web page

5 - Comet Long Polling with PHP and jQuery

6 - detacting idle timeout javascript

...等几个类似的例子

这些例子中数字1是更好地为我需要因为我需要自动注销用户与X分钟后的任何确认警报(logout.php或任何URL)之间。但是这种方法不适合服务器。问题是:这个jQuery代码发送ping任何url:keepAlive.php在循环/池请求确定文本。看到萤火虫屏幕:

enter image description here

如何解决这一问题? 所以,其他例子只打印空闲/没有空闲,不工作与警报确认和自动注销(logout.php或任何网址)现在真的更好的方式来选择使用jquery/PHP的空闲超时?

感谢

回答

3

我在后x秒的头部部分自动将用户定向到注销页面使用元刷新元素。下面将自动发送用户登出页面20分钟住在同一页上的后:

<meta http-equiv="refresh" content = "1200; url=http://www.site.com/user/logout"> 

这工作,是(大部分)支持跨浏览器,不依赖于JavaScript被启用,是很容易执行。

如果您的网站的用户长时间保持在同一页面上(例如通过JS进行交互),则此解决方案对您无效。它也不允许任何JS代码在重定向发生之前运行。

+2

绝对是最简单的解决方案,+1,因为这将满足OP要求,并且因为它很简单。 – 2013-12-09 00:50:54

1

这里是我应用于使用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>