我有这样的要求,在页面上显示会话计时器,让用户知道他们将被注销,比如30分钟,然后这个计时器每秒更新一次。我在javascript中编写函数,在我调用此函数的每个页面的onLoad()函数上执行此操作,并且它工作正常。
现在的问题是,只剩下5分钟,我需要显示一条警告,“你将在5分钟后退出”,所以我添加了一个条件if(Seconds == 300),如下面的代码所示。
function UpdateTimer() {
var Seconds = TotalSeconds;
var Minutes = Math.floor(Seconds / 60);
if(Seconds ==300)
alert( "you will be logged out in 5 mins");
Seconds -= Minutes * (60);
var TimeStr = LeadingZero(Minutes) + ":" + LeadingZero(Seconds)
document.getElementById("digital").innerHTML = TimeStr;
}
现在的问题是虽然会话超时前5分钟会弹出警报但是在用户点击此警报之前无法更新计时器。因此,如果没有用户操作发生,用户会话仍然超时但警报显示5分钟仍然存在。点击警告后,计时器再次开始倒计时,从5分钟开始倒计时,但会话已经超时。
同样以用户在新窗口中右键单击并打开页面为例,当用户在打开的窗口中处理新页面时,会话没有超时,但我的原始页面不知道这一点,因此它继续倒计时并在5分钟前显示警报。
请告诉我如何处理这种情况?