1

我尝试使用此代码在 15 分钟后自动注销。但这不能正常工作。我离开我的比赛 15 分钟,但什么也没发生。它保持登录状态。

但另一方面,如果我尝试更短的时间,例如 5 秒,它工作得很好……在 5 秒后它让我退出了。

我不知道,问题/错误在哪里?

var int=self.setInterval(setLastAction,1000);

function setLastAction(){
    var lastAction = new Date();    
    var baz = new Date();
    baz.setTime(lastAction.getTime() - firstAction.getTime());
    baz = baz.getSeconds();

    if(baz >= (15*60)){
         logOut();      
    }
}

$(document).mousemove(function(){
    firstAction = new Date();
});
4

1 回答 1

5

您正在从一个Date对象中获取秒数,使用getSeconds(),它总是0会返回一个介于和之间的整数59。比较时间之间的差异而不是创建一个新Date对象:

var secondsBetween = (lastAction.getTime() - firstAction.getTime()) / 1000;
if (secondsBetween >= (15 * 60)) {
     logOut();      
}
于 2012-09-03T08:57:49.327 回答