-->

使用jQuery PHP自动退出空闲超时(auto logout idle timeout usin

2019-09-16 19:09发布

我搜索,找到一些例子使用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来选择空闲超时?

谢谢

Answer 1:

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

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

此作品,是(大部分)支持跨浏览器,使能不依赖于JavaScript,是很容易实现。

如果您的网站有留在同一页上的时间过长(要与交互发生通过JS,例如)的用户,该解决方案将不会为你工作。 它也不允许重定向发生之前运行任何JS代码。



Answer 2:

这里是我的方法,我方法,建立使用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>


Answer 3:

<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>


文章来源: auto logout idle timeout using jquery php