2014-02-06 3 views
1

Наш сайт имеет ссылки ifame на разные контент-сайты, которые используются для онлайн-экзаменов. . Некоторые экзамены на страницах контента работают в течение 3 часов. . Кроме того, экзаменационная защита предотвращает использование пользователями других материалов сдача экзаменовCapture user Idling с использованием javascript

Проблема заключается в том, что после того, как пользователь выполнил экзамены более 3-х часов и придет на родительский сайт (наш сайт) У него есть проблема с тайм-аутом на родительской странице (время сеанса сеанса родительского сайта 180 мин)

В качестве решения для этого мы внедрили следующие JQuery

var to; 
    $(document).ready(function() { 
     to = setTimeout("TimeOut()", 10000); 
    }); 

    function TimeOut() { 
     $.ajax({ type: "POST", 
      url: "KeepAliveDummy.aspx", success: function() { 
       to = setTimeout("TimeOut()", 10000); 
      } 
     }); 
    }; 

Теперь проблема заключается в том, что если один пользователь открыт родительский сайт и уйти он будет держать сессию unwantedly,

Любое предложение для захвата времени простоя?

ответ

2

Мы можем использовать событие «mousemove» и посмотреть, активен он или нет.

Я использовал приведенный ниже код, чтобы проверить, достигло ли время простоя пользователя максимальное время простоя.

function checkIdleTimeOut() { 
     userIdleTime++; 
     if(userIdleTime >= maxIdleTime) { 
      alert("Reached max User Idle Time"); 
      clearInterval(intvl); 
     } 
     $("#output").html("userIdleTime: " + userIdleTime); 
} 

Я предоставил образец демонстрации, где максимальное время простоя установлено на 5 секунд.

Demo в JSFiddle Demo

+0

@KRR ли мой подход работал для вас –

Смежные вопросы