JavaScript中的定时器

161 阅读2分钟

1. window定时器方法

  • 有时并不想立即执行一个函数,而是等待特定一段时间之后再执行,称之为计划调用(scheduling a call)

  • 目前有两种方式可以实现:

    • setTimeout 允许将函数推迟到一段时间间隔之后再执行。

    • setInterval 允许重复运行一个函数,从一段时间间隔之后开始运行,之后以该时间间隔连续重复运行该函数

  • 并且通常情况下有提供对应的取消方法:

    • clearTimeout:取消setTimeout的定时器

    • clearInterval:取消setInterval的定时器

2. setTimeout的使用

  • 语法如下:

    var timeoutID = setTimeout(function | code [ , delay, arg1, arg2, ...]);
    
    • func|code:想要执行的函数或代码字符串。

      • 一般传入的都是函数,由于某些历史原因,支持传入代码字符串,但是不建议这样做
    • delay:执行前的延时,以毫秒为单位(1000 毫秒 = 1 秒),默认值是 0

    • arg1,arg2…:要传入被执行函数(或代码字符串)的参数列表

  • clearTimeout方法:

    • setTimeout 在调用时会返回一个“定时器标识符(timer identifier)”,可以使用它来取消执行

3. setInterval的使用

  • 语法如下:

    var timeoutID = setInterval(function | code[ , delay, arg1, arg2, ...]);
    
    • func|code:想要执行的函数或代码字符串。

      • 一般传入的都是函数,由于某些历史原因,支持传入代码字符串,但是不建议这样做
    • delay:执行前的延时,以毫秒为单位(1000 毫秒 = 1 秒),默认值是 0

    • arg1,arg2…:要传入被执行函数(或代码字符串)的参数列表

    • setTimeout 只执行一次不同,setInterval 是每间隔给定的时间周期性执行

  • clearTimeout方法:

    • setInterval 在调用时也会返回一个“定时器标识符(timer identifier)”,可以使用它来取消执行