Вызывание функции каждые 60 секунд

Используя setTimeout() возможно запустить функцию в требуемое время:

setTimeout(function, 60000);

Но что, если я хотел бы запустить функцию многократно? Каждый раз, когда временной интервал передает, я хотел бы выполнить функцию (каждые 60 секунд, скажем).

226
задан Samuel Liew 26 October 2017 в 19:04
поделиться

4 ответа

Если вас не волнует, может ли код в таймере занять больше времени, чем ваш интервал, используйте setInterval () :

setInterval(function, delay)

Это запускает функцию, переданную как первую параметр снова и снова.

Лучше использовать setTimeout вместе с самоисполняющейся анонимной функцией:

(function(){
    // do some stuff
    setTimeout(arguments.callee, 60000);
})();

, которая гарантирует, что следующий вызов не будет выполнен до того, как ваш код будет выполнен . В этом примере я использовал arguments.callee как ссылку на функцию. Это лучший способ дать функции имя и вызвать его в setTimeout , потому что arguments.callee устарел в ecmascript 5.

350
ответ дан 23 November 2019 в 03:52
поделиться
setInterval(fn,time)

- это метод, который вам нужен.

8
ответ дан 23 November 2019 в 03:52
поделиться

Используйте window.setInterval(func, time).

6
ответ дан 23 November 2019 в 03:52
поделиться

используйте

setInterval(function, 60000);

EDIT : (В случае, если вы хотите остановить часы после их запуска)

Раздел скриптов

<script>
var int=self.setInterval(function, 60000);
</script>

и HTML-код

<!-- Stop Button -->
<a href="#" onclick="window.clearInterval(int);return false;">Stop</a>
64
ответ дан 23 November 2019 в 03:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: