¿Hay alguna forma de llamar a una función periódicamente en JavaScript?
javascript
javascript-events
coderex
fuente
fuente
setInterval()
es la respuesta correcta a la pregunta, sin importar el parámetro. Es solo un ejemplo, y ambos métodos son, por definición, correctos.Tenga en cuenta que setInterval () a menudo no es la mejor solución para la ejecución periódica: realmente depende de qué javascript esté llamando periódicamente.
p.ej. Si usa setInterval () con un período de 1000 ms y en la función periódica realiza una llamada ajax que ocasionalmente demora 2 segundos en regresar, realizará otra llamada ajax antes de que vuelva la primera respuesta. Esto generalmente no es deseable.
Muchas bibliotecas tienen métodos periódicos que protegen contra las trampas del uso de setInterval ingenuamente, como el ejemplo de prototipo dado por Nelson.
Para lograr una ejecución periódica más robusta con una función que tenga una llamada jQuery ajax, considere algo como esto:
Otro enfoque es usar setTimeout pero rastrear el tiempo transcurrido en una variable y luego establecer el retraso de tiempo de espera en cada invocación dinámicamente para ejecutar una función lo más cerca posible del intervalo deseado pero nunca más rápido de lo que puede obtener respuestas.
fuente
Todos ya tienen una solución setTimeout / setInterval. Creo que es importante tener en cuenta que puede pasar funciones a setInterval, no solo cadenas. En realidad, es probablemente un poco "más seguro" pasar funciones reales en lugar de cadenas que serán "evadidas" a esas funciones.
O:
fuente
Antigua pregunta pero ... También necesitaba un corredor de tareas periódicas y escribí TaskTimer . Esto también es útil cuando necesita ejecutar múltiples tareas en diferentes intervalos.
TaskTimer
Funciona tanto en el navegador como en el nodo. Consulte la documentación para todas las funciones.fuente
Querrá echar un vistazo a setInterval () y setTimeout ().
Aquí hay un artículo tutorial decente .
fuente
Sí, eche un vistazo
setInterval
ysetTimeout
ejecute el código en determinados momentos. setInterval sería el que se usaría para ejecutar código periódicamente.Vea una demostración y responda aquí para su uso
fuente
fuente
Como desea que la función se ejecute periódicamente , use setInterval
fuente
La forma nativa es de hecho
setInterval()
/clearInterval()
, pero si ya está utilizando la biblioteca Prototype , puede aprovechar PeriodicalExecutor:Esto evita la superposición de llamadas. De http://www.prototypejs.org/api/periodicalExecuter :
fuente