Javascript不活动计时器逻辑

Javascript Inactivity timer logic

本文关键字:计时器 不活动 Javascript      更新时间:2023-09-26

我正在尝试使用javascript 实现一个非活动计时器

应该向用户显示一个确认"您处于非活动状态2分钟,请单击"是"继续"如果用户在1分钟内没有响应,则用户将被重定向到某个页面

<script type="text/javascript">
var firstTimer = 0;
var SecondTimer = 0;
   function closewindow() {          
       window.setInterval(ShowAlert, 1000);
              }
   function ShowAlert()
   {
   firstTimer++;
   SecondTimer++;
   if(firstTimer==2)
   {
   firstTimer=0;
   confirm('Do you want to Continue');
   }    
   }
   function FinalClose()
   {
    window.setInterval(ShowFinalAlert, 1000);
   }
   function ShowFinalAlert()
   {
   if(SecondTimer==3)
   {
   window.location.href="http://www.google.com";
   }
   }
</script>
<body onload="closewindow();FinalClose();">

上述代码的问题是,如果用户没有响应第一个警报,第二个计时器没有启动,也就是说,当总计数为3分钟时,他应该被重定向。

上面的代码有什么问题。

我会在这个上摇摆一下

var idle_timer = 120000; // check every 2 minutes    
var kick_timer = 60000;  // kick user after 1 minute
var redirect = function(){
  window.location = "http://google.com";
};
var idler = function(){ 
  // start the kick timer
  var kick_timer = setTimeout(redirect, kick_timer);
  // prompt user to click OK
  if (confirm("You get the boot in 60 seconds. Do you want the boot?")) {
    clearTimeout(kick_timer);
  }
  else {
    redirect();
  }
};
//schedule idler
setInterval(idler, idle_timer);