logout.jpg
我们在做web开发的时候,有些需求是需要控制用户如果长时间没有移动鼠标,没有操作的情况下,进行退出,防止长时间未使用,被别人登录或其它的考虑。

我们想到的解决方案就是监听鼠标的行为,如果鼠标是有移动的,就证明是活跃的。

如果发现长时间没有移动鼠标就表示,用户长时间没有操作页面,执行退出登录的操作。

js代码如下:

$(function(){
    /* 鼠标移动事件 */
    $(document).mouseover(function(){
        lastTime = new Date().getTime(); //更新操作时间
        console.log(lastTime);
    });
});

function testTime(){
    currentTime = new Date().getTime(); //更新当前时间
    if(currentTime - lastTime > timeOut){ //判断是否超时
        console.log("超时");
    }
}

/* 定时器  间隔1秒检测是否长时间未操作页面  */
window.setInterval(testTime, 1000);

在 超时的代码里面可以执行一段ajax的请求,来清除用户的登录状态,并强制返回至登录页面。