gpt4 book ai didi

10 分钟不活动时 JavaScript 自动注销

转载 作者:行者123 更新时间:2023-12-03 08:04:45 29 4
gpt4 key购买 nike

大家好,我正在编写一段代码,用于在大约 20 分钟内不活动时自动注销,该代码应该与键盘和鼠标交互,我有以下代码,适用于大多数功能,但它不会重置鼠标移动的计时器和键盘事件。

var timoutWarning = 9000; // Display warning in 14 Mins.
var timoutNow = 9000; // Warning has been shown, give the user 1 minute to interact
var logoutUrl = 'logout.php'; // URL to logout page.

var warningTimer;
var timeoutTimer;

// Start warning timer.
function StartWarningTimer() {
warningTimer = setTimeout("IdleWarning()", timoutWarning);
}

// Reset timers.
function ResetTimeOutTimer() {
clearTimeout(timeoutTimer);
StartWarningTimer();
$("#timeout").hide();
}

// Show idle timeout warning dialog.
function IdleWarning() {
clearTimeout(warningTimer);
timeoutTimer = setTimeout("IdleTimeout()", timoutNow);
$("#timeout").show();
}

// Logout the user.
function IdleTimeout() {
window.location = logoutUrl;
}
$( document ).ready(function() {
StartWarningTimer();
});
$('html').mousemove(function() {
ResetTimeOutTimer();
});

我希望代码应该吸引鼠标移动和键盘按下感谢您提供各种帮助,请给我一些建议

最佳答案

首先,您不应该以这种方式使用 setTimeout - 非事件选项卡 getting slower ,因此不能保证您的代码将在 14 分钟内执行。更好的方法是反复检查耗时。

var startTime = +new Date();
function checkForWarning () {
if (+new Date() - startTime > maxInactiveTime) {
// show warning
}
}

您可以通过以下方式跟踪事件:

$(document)
.on('click', ResetTimeOutTimer)
.on('mousemove', ResetTimeOutTimer);

希望有帮助。

关于10 分钟不活动时 JavaScript 自动注销,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34432255/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com