Я пытаюсь отключить пользователя в режиме ожидания, используя javascript на вкладках, приведенный ниже код отлично работает для одной вкладки, для нескольких вкладок он не работает должным образом.
Например: я установил 10 секунд в качестве времени простоя и оставил первую вкладку, она выбрасывает пользователя на 10 секунд, предположим, что я открыл первую вкладку в 00:00:05 часов и открыл вторую вкладку в 00:00:10 часов и работает над второй вкладкой в течение 00:00:13 часов и оставил обе вкладки, чтобы выйти из проекта 00:00: 23 верно? но он выходит из системы в 00:00:15, я не знаю, что здесь происходит, если он не обновлялся должным образом, как он мог оставаться на второй вкладке в течение длительного времени, когда я его использую ? если он обновляется правильно, как он может выйти из системы на основе первой открытой вкладки и следующего кода.
<script>
var IDLE_TIMEOUT = 10; //seconds
localStorage.setItem("setTimeOut", "0");
document.onclick = function () {
localStorage.setItem("setTimeOut", "0");
};
document.onmousemove = function () {
localStorage.setItem("setTimeOut", "0");
};
document.onkeypress = function () {
localStorage.setItem("setTimeOut", "0");
};
document.onfocus = function () {
localStorage.setItem("setTimeOut", "0");
};
window.setInterval(CheckIdleTime, 1000);
function CheckIdleTime() {
localStorage.setItem("setTimeOut", parseInt(localStorage.getItem("setTimeOut"))+1);
if (localStorage.getItem("setTimeOut") >= IDLE_TIMEOUT) {
alert('Times up!, You are idle for about 15 minutes, Please login to continue');
document.location.href = "logout.php";
}
}
</script>