为什么每次都会增加?

时间:2011-04-19 18:48:26

标签: timer settimeout

我想了解为什么timer的数量在使用时会不断增加。

每次都是从一个新数字开始吗?

为什么它增加2或4但不增加1?

$(document).ready(function(){
    endAndStartTimer();
});

var timer;
function endAndStartTimer() {
  window.clearTimeout(timer);
  //var millisecBeforeRedirect = 10000; 
  timer = window.setTimeout(function(){alert('Hello!');},1000); 
  alert(timer);
}

我需要window.clearTimeout(计时器);里面的功能?如果我

,会有什么不对

你可以试试here

感谢。

2 个答案:

答案 0 :(得分:0)

一些简单的事实

  1. 在设置之前,您无需致电clearTimeout。至少不在您提供的代码中。

  2. 当我在FF4中运行你的JSFiddle时,它总是报告2

  3. 计时器ID是由浏览器中实现的Javascript引擎生成的,因此您无法对其进行太多控制。无论它返回什么,都必须用它来清除它。我没有对它进行测试,但也可能是这些ID生成器以不同的方式实现。虽然最简单(=最快)的方法是简单地增加最后一个计时器ID的ID。

答案 1 :(得分:0)

该方法返回唯一的计时器ID。唯一的目的是为您提供一个使用clearTimeout的句柄。您无法控制生成的ID。