代码之家  ›  专栏  ›  技术社区  ›  Pranay Rana

“setInterval”与“setTimeout”[重复]

  •  227
  • Pranay Rana  · 技术社区  · 14 年前

    两者的主要区别是什么

    setInterval

    setTimeout

    在JavaScript中?

    5 回复  |  直到 12 年前
        1
  •  460
  •   Einsteinium    3 年前

    setTimeout(expression, timeout); 运行代码/函数 超时后。

    setInterval(expression, timeout); 反复地 ,以及每次重复之间的超时长度。

    例子:

    var intervalID = setInterval(alert, 1000); // Will alert every second.
    // clearInterval(intervalID); // Will clear the timer.
    
    setTimeout(alert, 1000); // Will alert once, after a second.
    
        2
  •  78
  •   deceze    12 年前

    setInterval 一次又一次地开火 间隔 setTimeout 只开火一次。

    看到了吗 reference at MDN .

        3
  •  71
  •   BuZZ-dEE Brian Goetz    4 年前

    setTimeout() :

    它是一个执行JavaScript语句的函数 AFTER x间隔。

    setTimeout(function () {
        something();
    }, 1000); // Execute something() 1 second later.
    

    setInterval()

    它是一个执行JavaScript语句的函数 EVERY x间隔。

    setInterval(function () {
        somethingElse();
    }, 2000); // Execute somethingElse() every 2 seconds.
    

    millisecond 对于这两种功能。

        4
  •  29
  •   gion_13 Nicolae Olariu    10 年前

    setInterval 重复通话, setTimeout

        5
  •  29
  •   BuZZ-dEE Brian Goetz    4 年前

    setInterval()

    setInterval是一种基于时间间隔的代码执行方法,它具有在达到时间间隔时重复运行指定脚本的本机能力。脚本作者不应该将它嵌套到其回调函数中以使其循环,因为它在默认情况下是循环的。除非调用clearInterval()。

    如果你想为动画或时钟循环代码 然后使用setInterval。

    function doStuff() {
    alert("run your code here when time interval is reached");
    }
    var myTimer = setInterval(doStuff, 5000);
    

    setTimeout()

    function doStuff() {
    alert("run your code here when time interval is reached");
    }
    var myTimer = setTimeout(doStuff, 5000);
    

    如果你想在几秒钟后发生一件事 然后使用setTimeout。。。因为它只在达到间隔时执行一次。