В чем основное отличие между
и
в JavaScript?
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 interval.
setInterval(function () {
somethingElse();
}, 2000); // Execute somethingElse() every 2 seconds.
Единица интервала находится в millisecond
для обеих функций.
setInterval
повторяет вызов, setTimeout
запускает его только один раз.
setInterval - это метод выполнения кода на основе временного интервала, который имеет нативную способность многократно запускать указанный script, когда интервал будет достигнут. Он не должен быть вложен в свою функцию обратного вызова автором script, чтобы сделать его loop, поскольку он по умолчанию по умолчанию. Он будет продолжать стрельбу с интервалом, если вы не назовете clearInterval().
если вы хотите создать код цикла для анимации или часов Затем используйте setInterval.
function doStuff() {
alert("run your code here when time interval is reached");
}
var myTimer = setInterval(doStuff, 5000);
setTimeout - это метод выполнения кода, основанный на времени, который будет выполнять script только один раз, когда этот интервал будет достигнут, а не повторится снова, если вы не зацикливаете его на цикл script, вставив объект setTimeout внутри функции it вызовы для запуска. Если он привязан к циклу, он будет продолжать стрелять с интервалом, если вы не вызываете clearTimeout().
function doStuff() {
alert("run your code here when time interval is reached");
}
var myTimer = setTimeout(doStuff, 5000);
если вы хотите, чтобы что-то произошло через несколько секунд Затем используйте setTimeout... потому что он выполняется только один раз, когда достигается интервал.