“setInterval”与“setTimeout”
IT技术
javascript
2021-02-05 00:51:48
5个回答
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.
setInterval
间隔一次又一次地setTimeout
触发,而只触发一次。
请参阅MDN 上的参考。
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
这两个函数。
setInterval()
setInterval 是一种基于时间间隔的代码执行方法,具有在达到间隔时重复运行指定脚本的本机能力。脚本作者不应将其嵌套到其回调函数中以使其循环,因为它默认循环。除非您调用 clearInterval(),否则它将继续按间隔触发。
如果你想为动画或时钟循环代码然后使用 setInterval。
function doStuff() {
alert("run your code here when time interval is reached");
}
var myTimer = setInterval(doStuff, 5000);
setTimeout()
setTimeout 是一种基于时间的代码执行方法,它只会在达到间隔时执行一次脚本,并且不会再次重复,除非您通过将 setTimeout 对象嵌套在它调用运行的函数内来使其循环脚本。如果适合循环,除非您调用 clearTimeout(),否则它将继续按间隔触发。
function doStuff() {
alert("run your code here when time interval is reached");
}
var myTimer = setTimeout(doStuff, 5000);
如果你想在几秒钟后发生一次然后使用 setTimeout... 因为它只在达到间隔时执行一次。
setInterval
重复调用,setTimeout
只运行一次。