gpt4 book ai didi

带有多个选项卡弹出警报的 Javascript session 超时

转载 作者:可可西里 更新时间:2023-11-01 01:00:56 24 4
gpt4 key购买 nike

我正在使用 javascript setInterval() 来检查用户空闲时间并在自动注销前显示弹出警报。但它不适用于多个选项卡(适用于单个选项卡)

以下是我的代码:

localStorage.removeItem("idleTimeValue");
var idleInterval = setInterval(timerIncrement, 1000);


function timerIncrement()
{
if(localStorage.getItem("idleTimeValue")) {
idleTime = parseInt(localStorage.getItem("idleTimeValue")) + 1; //increments idle time by one second
} else {
idleTime = 1;
}

localStorage.setItem("idleTimeValue", idleTime);

var timeDiff = 600;
var totTimeRemaining = timeDiff-idleTime;


if(totTimeRemaining > 0) {

$('#timeoutWindow').modal('show');
var minutes = Math.floor(totTimeRemaining / 60);
var seconds = totTimeRemaining - minutes * 60;
$('#timeoutRemainingTime').html(minutes+" minutes and "+seconds+" seconds");
} else {
window.location = httpHost+"/account/index/logout";
}

}


$(this).click(function (e)
{
localStorage.removeItem("idleTimeValue");
$('#timeoutWindow').modal('hide');
});

我在 localStorage 中设置空闲时间,比如 -

localStorage.setItem("idleTimeValue", idleTime);

因此,如果我打开 3 个选项卡,setInterval() 函数将在所有选项卡中运行,idleTime 也会增加 3 秒而不是 1 秒,并且时间计算发生错误。

我需要在所有选项卡中显示弹出窗口,并且在一个选项卡中单击继续应该会反射(reflect)在所有其他选项卡中。

有人可以为此提出解决方案吗?请大家帮忙

最佳答案

谢谢大家,我找到了解决方案。

我使用了一个存储当前时间的 localStorage 值。如果 localStorage["currentTime"] 中不存在任何值,则将当前时间存储在 localStorage 中。

var currentTime         = new Date();

if ( !(localStorage.getItem("currentTime")) || (localStorage.getItem("currentTime") == "") )
{
idleTime = 0;
setTimeout(function() { localStorage.setItem("currentTime", currentTime)},5000); // current time is set to localStorage after seconds (it is for setting in multiple tabs)
}

显示超时弹出窗口的所有计算都是使用 localStorage.getItem("currentTime") 值完成的。

然后如果用户不空闲(当用户点击某处时),我将 localStorage["currentTime"] 设置为 null

$(this).click(function (e) 
{
$('#timeoutWindow').modal('hide');
localStorage.setItem("currentTime", "");
idleTime = 0;
});

关于带有多个选项卡弹出警报的 Javascript session 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26993567/

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