2010-12-16 3 views
0

то, что мне нужно это для или во время цикла, который будет повторно запускать код каждый второй ив пытался спать(), но я не думаю, что это работает, или я получил это правоява скрипт для цикла технарь

ответ

1

попробовать

// where yourfunction is a method that contains your loop logic 
setTimeout(yourfunction, 1000); 

Это будет вызывать функцию каждые 1000 миллисекунд без необходимости встраивать ее в цикл или цикл.

положить его в ваше тело OnLoad или подобное событие

+1

Это должно быть 'setInterval', а не' setTimeout'. Кроме того, рекомендуется показать анонимный синтаксис функции, если функция требует параметров. –

3

Не пытайтесь использовать for или while петлю для таких временных операциях. У вас будет трудное время с надежной или точной синхронизацией и, как правило, заканчивается перила процессора, что делает компьютер вялым.

JavaScript предоставляет функцию setInterval() для выполнения этих задач. Также обратите внимание, что Greasemonkey has some caveats about how to use setInterval() and setTimeout().

Так код, который вы хотите, как:

var timerVar = setInterval (function() {DoMeEverySecond(); }, 1000); 

function DoMeEverySecond() 
{ 
    //--- Your code here. 
} 

//--- When ready to stop the timer, run this code: 
clearInterval (timerVar); 
timerVar  = ""; 
+0

+1 брок, хорошая точка re мой setTimeout. я, конечно, имел в виду setInterval (также очень хорошие параметры точки!). пальцы быстрее, чем мозг! приветствия сезона ... :-) –

Смежные вопросы