js中两种定时器的设置及清除
发布日期:2021-05-10 01:31:20 浏览次数:12 分类:精选文章

本文共 1557 字,大约阅读时间需要 5 分钟。

JS中的定时器详解

在 JavaScript 开发中,定时器是非常基础却又常用的功能。两种常用的定时器函数分别是 window.setTimeoutwindow.setInterval。以下是它们的主要区别以及如何正确使用和清除定时器。

一、定时器的基本功能

  • window.setTimeout(function, timeout)

    这个方法设置了一个定时器,并在指定的 timeout 时间后执行提供的函数。定时器执行后会自动停止,但不会重复执行。一旦函数完成执行,定时器就不再响应新的操作。调用示例:

    var timer1 = window.setTimeout(function() { alert('定时器1执行') }, 1000);

    返回值 timer1 表示当前是第几个定时器(此例为1),可用于清除定时器。

  • window.setInterval(function, interval)

    这个方法与 setTimeout 的区别在于,它设置一个可以重复执行的定时器。一旦函数执行完成,定时器不会停止,仍然会在指定的 interval 时间后重复执行,直到手动调用 window.clearInterval(timer)。调用示例:

    var timer2 = window.setInterval(function() { alert('定时器2执行') }, 1000);

    如果需要停止该定时器,可以使用 window.clearInterval(timer2)

  • 二、定时器的序号返回值

    当使用 setTimeoutsetInterval 函数调用时,函数返回一个定时器的标识符。这个标识符是一个数字,表示当前是第几个定时器(从1开始计数)。例如:

    • var timer1 = window.setTimeout(function() {}, 1000); // 返回值1
    • var timer2 = window.setTimeout(function() {}, 1000); // 返回值2
    • var timer3 = window.setTimeout(function() {}, 1000); // 返回值3

    需要注意的是,即使清除了某个定时器,其返回值仍然存在,但其对应的循环过程已停止。清除定时器时既可以使用与设置时相同的标识符,也可以直接使用返回值。在实际开发中,我们更推荐使用返回值来清除定时器,因为这种方法更加灵活且减少了错误可能性。

    三、清除定时器的方法

    • 如果使用 setTimeout 设置的定时器,应使用 window.clearTimeout(timer) 清除。

    • 如果使用 setInterval 设置的定时器,应使用 window.clearInterval(timer) 清除。

    • 两种清除方式支持多种参数形式:

      • 可以传递定时器标识符(如 timer1 或数字标识符如 3)。
      • 或者直接传递返回值(如 clearTimeout(1)clearInterval(timer3))来清除相应的定时器。

      例如:

      window.clearInterval(timer2); // 停止正在执行的 `timer2` 定时器

    需要注意的是,即使清除了某个定时器,其返回值仍然有效,但新设定的定时器仍会从1开始编号。这一点与银行的排队领号原则相符,即使旧业务完成,后续服务仍从下一个号码继续办理。

    总结

    在实际开发中,合理地使用 setTimeoutsetInterval 函数是非常重要的。选择 setTimeout 用于一克时间执行的任务,而 setInterval 用于需要持续循环执行的任务。记得定期检查并清除不需要的定时器,以避免内存泄漏和性能问题。

    上一篇:MySQL Flashback 闪回功能详解
    下一篇:mybaits 中没有else要用chose when otherwise 代替

    发表评论

    最新留言

    不错!
    [***.144.177.141]2025年04月28日 06时52分52秒