javascript - 超时注销(JavaScript,jQuery)

标签 javascript jquery timeout logout

我尝试使用此代码在 15 分钟后自动注销。 但这不能正常工作。我离开我的 comp 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();
});

最佳答案

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

var secondsBetween = (lastAction.getTime() - firstAction.getTime()) / 1000;
if (secondsBetween >= (15 * 60)) {
     logOut();      
}

关于javascript - 超时注销(JavaScript,jQuery),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12244708/

相关文章:

javascript - 错误 : Uncaught (in promise): invalid link: ProductListComponent

javascript - 我无法有选择地在元素上运行我的函数

javascript - 如何根据字段值设置标志 true/false?

javascript - JavaScript 中的字符串比较失败

javascript - 通过 javascript 临时更改 css

android - 我究竟做错了什么?我的超时不起作用

linux - cURL:空闲超时间隔超过指定值

Python:每分钟只需要请求 20 次

javascript - 如何将 div 附加到容器

javascript - 数据更改时发出警报 - JSON、AJAX 和 jQuery