关于 settimeout 的快速问题,它是否像 setinterval 一样定期执行?
比如我有一行代码 setTimeout("functionx();" , 1000)
,那么 functionx() 只会被执行一次(1秒后执行)吗?还是会这样:
- 延迟1秒
- 运行 functionx()
- 之后每隔1秒执行一次 functionx()?
谢谢。
关于 settimeout 的快速问题,它是否像 setinterval 一样定期执行?
比如我有一行代码 setTimeout("functionx();" , 1000)
,那么 functionx() 只会被执行一次(1秒后执行)吗?还是会这样:
谢谢。
setTimeout
是一次性的,你给它的函数只会被调用一次。
(离题:请注意,你几乎永远不想给setTimeout
或setInterval
传递包含代码的字符串;相反,请给它一个实际的函数引用。)
因此,这将在大约半秒钟后调用函数foo
一次(这些时间不精确):
function foo() {
display("Hi there");
}
setTimeout(foo, 500);
相比之下,这种方式会每隔半秒钟左右调用一次它,直到你停止它:
var timer = setInterval(foo, 500);
// Somewhere else, stop it:
clearInterval(timer);
setTimeout会在指定的毫秒数后执行给定的函数。setInterval会每隔指定的毫秒数执行一次给定的函数。如果你想让setTimeout像setInterval一样工作,你需要将指定的函数设为递归函数。