Там какой-либо путь состоит в том, чтобы периодически вызывать функцию в JavaScript?

C99-разработайте макросы аргумента переменной, иначе

#define ERR(name, fmt, ...)   fprintf(stderr, "ERROR " #name ": " fmt "\n", \
                                  __VAR_ARGS__)

, который использовался бы как

ERR(errCantOpen, "File %s cannot be opened", filename);

Здесь, я также использую stringize оператор и строковую константу concatentation, другие функции, которые я действительно люблю.

119
задан Kara 6 February 2014 в 17:55
поделиться

7 ответов

Вы хотите setInterval () :

var intervalID = setInterval(function(){alert("Interval reached");}, 5000);

Первый параметр в setInterval () также может быть строкой кода для оценки.

Вы можете очистить периодическую функцию с помощью:

clearInterval(intervalID);
199
ответ дан 24 November 2019 в 01:48
поделиться

У всех уже есть решение setTimeout / setInterval. Я думаю, что важно отметить, что в setInterval можно передавать функции, а не только строки. На самом деле, вероятно, немного «безопаснее» передавать реальные функции вместо строк, которые будут «преобразованы» в эти функции.

// example 1
function test() {
  alert('called');
}
var interval = setInterval(test, 10000);

Или:

// example 2
var counter = 0;
var interval = setInterval(function() { alert("#"+counter++); }, 5000);
15
ответ дан 24 November 2019 в 01:48
поделиться

Вы захотите взглянуть на setInterval () и setTimeout ().

Вот достойная учебная статья .

3
ответ дан 24 November 2019 в 01:48
поделиться

да - взгляните на setInterval и setTimeout для выполнения кода в определенное время. setInterval будет использоваться для периодического выполнения кода.

См. демонстрацию и ответьте здесь для использования

3
ответ дан 24 November 2019 в 01:48
поделиться

Собственный способ - действительно setInterval () / clearInterval () , но если вы уже используете библиотеку Prototype вы можете воспользоваться PeriodicalExecutor:

new PeriodicalUpdator(myEvent, seconds);

Это предотвращает перекрытие вызовов. Из http://www.prototypejs.org/api/periodicalExecuter :

«он защищает вас от множественных параллельных выполнений функции обратного вызова, если для выполнения требуется больше заданного интервала (поддерживается внутренний «запущенный» флаг, который защищен от исключений в функции обратного вызова). Это особенно полезно, если вы используете его для взаимодействия с пользователем через определенные промежутки времени (например, используйте подсказку или подтверждающий вызов): это позволит избежать множественных окон сообщений все ждут, когда будут приняты меры ".

1
ответ дан 24 November 2019 в 01:48
поделиться
function test() {
 alert('called!');
}
var id = setInterval('test();', 10000); //call test every 10 seconds.
function stop() { // call this to stop your interval.
   clearInterval(id);
}
2
ответ дан 24 November 2019 в 01:48
поделиться

Поскольку вы хотите, чтобы функция выполнялась периодически , используйте setInterval

1
ответ дан 24 November 2019 в 01:48
поделиться
Другие вопросы по тегам:

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