Тайм-аут автоматического выхода из системы с использованием jquery php

Я искал и нашел несколько примеров, чтобы установить время простоя, используя jquery.

1 - Тайм-аут простоя Эрик Хиндс ДЕМО

2 - Таймер простоя By paulirish

3 - пожарное событие, когда пользователь бездействует / ДЕМО ЗДЕСЬ

4 - определить, что пользователь активен или находится в режиме ожидания на веб-странице

5 - Длинный опрос кометы с помощью PHP и jQuery

6 - устранение простоя тайм-аута JavaScript

... и несколько других подобных примеров

Между этими примерами номер 1 лучше для меня, потому что мне нужно автоматически выйти из системы с любым подтверждением оповещения через X минут (logout.php или любой URL). но этот метод не подходит для сервера. проблема заключается в следующем: этот код jquery отправляет ping на любой URL: keepAlive.php в цикле / пуле для запроса текста OK. см. экран firebug:

как это исправить? Итак, другие примеры только напечатали Idle/No Idle и не работают с подтверждением оповещений и автоматическим выходом из системы (logout.php или любым URL), теперь действительно лучший способ выбрать время простоя с помощью jquery/Php?

Спасибо

2 ответа

Я использую элемент meta refresh в разделе head, чтобы автоматически перенаправлять пользователей на страницу выхода из системы через 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>

Легко и просто

     var autoLogoutTimer;
        resetTimer();
        $(document).on('mouseover mousedown touchstart click keydown mousewheel DDMouseScroll wheel scroll',document,function(e){
            // console.log(e.type); // Uncomment this line to check which event is occured
            resetTimer();
        });
        // resetTimer is used to reset logout (redirect to logout) time 
        function resetTimer(){ 
            clearTimeout(autoLogoutTimer)
            autoLogoutTimer = setTimeout(idleLogout,5000) // 1000 = 1 second
        } 
        // idleLogout is used to Actual navigate to logout
        function idleLogout(){
            window.location.href = ''; // Here goes to your logout url 
        }
Другие вопросы по тегам