使用javascript捕获用户空闲

时间:2014-02-06 06:34:26

标签: javascript jquery asp.net iis-7 session-timeout

我们的网站有ifame链接到用于进行在线考试的不同内容网站 内容页面中的一些考试运行时间超过3小时 考试后卫也可以防止用户在参加考试时做其他事情

问题是,一旦用户完成3 + hrs的考试并进入父站点(我们的站点) 它在父页面中有会话超时问题,(父站点会话超时设置为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);
            }
        });
     };

现在的问题是,如果一个用户打开父网站并离开它会使会话不受欢迎,

有关捕获空闲时间的任何建议吗?

1 个答案:

答案 0 :(得分:2)

我们可以使用“mousemove”事件并查看用户是否处于活动状态。

我使用以下代码测试用户空闲时间是否达到最大空闲时间。

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

我提供了一个示例演示,其中最大空闲时间设置为5秒。

JSFiddle Demo

演示