如何在时间超出其设定时间时关闭前一个设置间隔



当会话即将过期时,我将能够使用下面的代码设置两个提醒。它工作得很好。这是为了确保用户知道他正在接近会话

reminder1 = setTimeout(function(){alert("Hey, your session is ending")},360000);
reminder2 = setTimeout(function(){
redirect();
},720000);
function redirect(){
document.location = "../logout.php"
}

但是当用户超过360000时,我不想显示它们。我怎么清除这些?我知道我们有明确的间隔,这是正确的方法吗?

setTimeout(function(){clearTimeout(reminder1),360001);

你可能想要setTimeout

如果想要计数器继续,永远不要使用alert或prompt或confirm。他们在阻塞

const warning = document.getElementById("warning");
let reminder1, reminder2;
const red = function() {
clearTimeout(reminder1)
clearTimeout(reminder2)
reminder1 = setTimeout(function() {
console.log("redirecting")
warning.classList.toggle("hide",true)  
// redirect()
}, 7200);
reminder2 = setTimeout(function() {
warning.classList.toggle("hide")
}, 3600)
}
document.getElementById("stay").addEventListener("click",red)
red();
.hide {
display: none
}
<span id="warning" class="hide">Hey, your session is ending <button id="stay">Stay connected</button></span>

相关内容

最新更新