C99-разработайте макросы аргумента переменной, иначе
#define ERR(name, fmt, ...) fprintf(stderr, "ERROR " #name ": " fmt "\n", \
__VAR_ARGS__)
, который использовался бы как
ERR(errCantOpen, "File %s cannot be opened", filename);
Здесь, я также использую stringize оператор и строковую константу concatentation, другие функции, которые я действительно люблю.
Вы хотите setInterval ()
:
var intervalID = setInterval(function(){alert("Interval reached");}, 5000);
Первый параметр в setInterval () также может быть строкой кода для оценки.
Вы можете очистить периодическую функцию с помощью:
clearInterval(intervalID);
У всех уже есть решение 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);
Вы захотите взглянуть на setInterval () и setTimeout ().
Вот достойная учебная статья .
да - взгляните на setInterval
и setTimeout
для выполнения кода в определенное время. setInterval будет использоваться для периодического выполнения кода.
См. демонстрацию и ответьте здесь для использования
Собственный способ - действительно setInterval ()
/ clearInterval ()
, но если вы уже используете библиотеку Prototype вы можете воспользоваться PeriodicalExecutor:
new PeriodicalUpdator(myEvent, seconds);
Это предотвращает перекрытие вызовов. Из http://www.prototypejs.org/api/periodicalExecuter :
«он защищает вас от множественных параллельных выполнений функции обратного вызова, если для выполнения требуется больше заданного интервала (поддерживается внутренний «запущенный» флаг, который защищен от исключений в функции обратного вызова). Это особенно полезно, если вы используете его для взаимодействия с пользователем через определенные промежутки времени (например, используйте подсказку или подтверждающий вызов): это позволит избежать множественных окон сообщений все ждут, когда будут приняты меры ".
function test() {
alert('called!');
}
var id = setInterval('test();', 10000); //call test every 10 seconds.
function stop() { // call this to stop your interval.
clearInterval(id);
}
Поскольку вы хотите, чтобы функция выполнялась периодически , используйте setInterval