为什么每次都会增加?

发布于 2024-11-02 18:31:49 字数 523 浏览 5 评论 0原文

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

每次都应该从一个新的数字开始吗?

为什么每次增加 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(timer);函数内部?如果我愿意的话会有什么问题吗?

您可以在此处尝试一下。

谢谢。

I want to understand why the number of timer keeps increasing whenever it is in use.

Should it start from a fresh number each time?

And why does it increase 2 or 4 each but not 1?

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

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

Do I need window.clearTimeout(timer); inside the function? What would it be wrong if I d

you can try it here.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

剩一世无双 2024-11-09 18:31:49

一些简单的事实

  1. 在设置之前,您不必调用 clearTimeout。至少在您提供的代码中没有。

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

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

Some simple facts

  1. You don't have to call clearTimeout before setting one. At least not in the code you provided.

  2. When I run your JSFiddle in FF4 it always reports 2

  3. Timer IDs are generated by Javascript engine implemented in the browser so you don't have much control over it. Whatever it returns is value that you have to use to clear it. I haven't tested it but it may as well be that these ID generators are implement in a different way. Although the simplest (=fastest) way is by simply incrementing the ID of the last timer ID.

日裸衫吸 2024-11-09 18:31:49

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

The method returns unique timer ID. The only purpose is to give you a handle to use it with clearTimeout. You can't control what id is generated.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文