Javascript不活动计时器逻辑

时间:2013-06-21 22:46:02

标签: javascript

我正在尝试使用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分钟时,他应该被重定向。

上述代码有什么问题。

1 个答案:

答案 0 :(得分:0)

我会在这个时候摇摆

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);