【发布时间】:2018-08-07 21:41:17
【问题描述】:
我的应用程序中有一个会话计时器,用于检查用户是否在特定时间内处于空闲状态。下面是我的代码。
var sessionTimeout;
window.onload = resetTimer;
// DOM Events
document.onmousemove = resetTimer;
document.onkeypress = resetTimer;
// I have some more dom events here
function logout() {
alert("You are now logged out.")
//location.href = 'logout.php'
}
function resetTimer() {
clearTimeout(sessionTimeout);
sessionTimeout = setTimeout(logout, 30000)
}
如果用户同时打开两个选项卡并保持一个选项卡空闲而另一个不空闲,他将在超时期限后注销,因为计时器将在另一个不在焦点的选项卡中运行。有没有办法处理这个?我认为 Javascript 无法访问其他选项卡中的数据。那么是否有任何特定于浏览器的全局超时适用于所有选项卡,以便在任何选项卡不空闲时会话将处于活动状态?任何人都可以提出解决方案吗?
【问题讨论】:
标签: javascript session timeout settimeout