Подтвердить что ты не робот

Вызывайте функцию Javascript каждые 5 секунд непрерывно

Possible Duplicate:
Calling a function every 60 seconds

Вызывайте функцию Javascript каждые 5 секунд непрерывно. Я видел событие setTimeOut. Будет ли это работать нормально, если я хочу это постоянно?

4b9b3361

Ответ 1

Вы можете использовать setInterval(), аргументы одинаковые.

const interval = setInterval(function() {
   // method to be executed;
 }, 5000);

clearInterval(interval); // thanks @Luca D'Amico

Ответ 2

Сделайте "рекурсивный" setTimeout вашей функции, и он будет выполняться каждый раз в определенное время:

function yourFunction(){
    // do whatever you like here

    setTimeout(yourFunction, 5000);
}

yourFunction();

Ответ 3

Как лучшие методы кодирования, используйте setTimeout вместо setInterval.

function foo() {

    // your function code here

    setTimeout(foo, 5000);
}

foo();

Обратите внимание, что это не рекурсивная функция. Функция не вызывается сама до ее окончания, она вызывает функцию setTimeout, которая позже будет снова вызывать ту же функцию.

Ответ 4

Для повторения действия в будущем существует встроенная функция setInterval, которую вы можете использовать вместо setTimeout. < ш > Он имеет аналогичную подпись, поэтому переход от одного к другому прост:

setInterval(function() {
    // do stuff
}, duration);

Ответ 5

Хороший рабочий пример здесь: http://jsfiddle.net/MrTest/t4NXD/62/

Плюс:

  • имеет приятную анимацию fade in / fade out
  • остановится на :hover
  • предотвратит выполнение нескольких действий (завершите анимацию до начала второго)
  • предотвратит поломку, если во вкладке (браузер останавливает скрипты во вкладках)

Проверено и работает!