settimeout = setinterval有延迟吗?

时间:2011-03-26 11:37:42

标签: javascript html

关于settimeout的快速问题,它是否像setinterval一样定期执行?

假设我的行有setTimeout("functionx();" , 1000), functionx()只执行一次(1秒后)?或者是这样的:

  1. 1秒延迟
  2. 运行functionx()
  3. 之后每1秒执行一次functionx?
  4. 感谢

3 个答案:

答案 0 :(得分:6)

setTimeout是一次性的,你给它的功能只被调用一次。

(偏离主题:请注意,您几乎从不想给setTimeoutsetInterval一个包含代码的字符串;而是给它一个实际的函数引用。)

所以这会在半秒之后调用函数foo (这些事情不准确):

function foo() {
    display("Hi there");
}
setTimeout(foo, 500);

......然而,这将会每隔半秒左右调用,直到你停止它为止:

var timer = setInterval(foo, 500);
// Somewhere else, stop it:
clearInterval(timer);

答案 1 :(得分:1)

使用setTimeout(),在指定的延迟后,该功能只会执行

单次执行正是与setInterval()的区别,后者会重复调用该函数。

答案 2 :(得分:0)

setTimeout将在给定的毫秒后执行给定的函数。 setInterval将每隔给定的毫秒执行给定的函数。如果你想让setTimeout像setInterval一样工作,你必须使你指定的函数递归。