2009-01-20 17 views

Respuesta

6

También puede hacerlo con

setTimeout(function() {ajaxUpdate(10)}, 1000); 
+1

esto será una sola vez, no iterativo – annakata

+0

Este es el correcto para esta situación porque b4 cada iteración quiero verificar una condición, y solo si se cumple, quiero que el temporizador se establezca 4 en la siguiente iteración. Con setInterval se ejecutaría automáticamente. sin verificar la condición que no quiero. Y este 1 es más simple –

+2

Encuentro la segunda respuesta (de Kent Fredric) mucho más completa y detallada. También presenta múltiples formas de lograr tu objetivo. Esta respuesta también es buena, pero está incompleta y no es tan útil para la comunidad, por lo que te sugiero que aceptes la respuesta de Kent. – Mtz

5

Puede usar setInterval() para eso. Crear una función anónima que se llama, y ​​utilizar el tiempo en milisegundos:

var myInterval = window.setInterval(function() { ajaxUpdate(10); }, 1000); 
+0

Debe usar window.setInterval() en lugar de solo setInterval() –

+0

Actualizado - gracias @gs – Greg

+0

¿necesito usar var myInterval = ... o puedo simplemente llamar al código en el lado derecho de = y ¿funcionará? –

39
var i = window.setInterval(function(){ 
      ajaxUpdate(10); 
}, 1000); 

Para ello, será ajaxUpdate cada segundo, hasta el momento en que se detuvo.

Y si desea detenerlo después:

window.clearInterval(i); 

Si sólo desea ejecutarlo vez sin embargo,

var i = window.setTimeout(function(){ 
      ajaxUpdate(10); 
}, 1000); 

hará el truco, y si desea detener Se está ejecutando antes de que se ejecute una vez

window.clearTimeout(i); 

La "ventana "prefix no es estrictamente nessecary, pero es una buena idea, porque nunca se sabe cuando alguien más podría querer crear algo más con el mismo nombre en el ámbito visible que se comporte de manera diferente.

Para una referencia completa sobre este, siempre encuentro MDC muy útil:

Además, es posible que desee leer este artículo sobre temporizadores por John Resig,

+0

Debe usar window.setInterval() en lugar de solo setInterval() (igual para clearInterval) –

+0

el enlace a los documentos de javascript sería una buena adición: https://developer.mozilla.org/en/DOM/window.setInterval –

+0

¿Por qué debería precederlo con "ventana"? ? –

-1

Puede utilizar la función setTimeout (FONC cadena, retardo entero). Por ejemplo, para ejecutar el código cada segundo que puede hacer:

window.setTimout("ajaxUpate",100); 

Esperanza contesto a su pregunta;)

+0

¡Uy, todos responden en el mismo minuto! – damdec

+0

No se recomienda el uso de cadenas, es demasiado ambiguo. –

+0

Además, en su ejemplo, se llamará ajaxUpdate con un valor semialeatorio, no con el valor fijo '10' que solicitó. –

Cuestiones relacionadas