javascript - tablas - ¿Cuál es la forma más fácil de llamar a una función cada 5 segundos en jQuery?
obtener datos de una tabla html javascript (7)
Esta pregunta ya tiene una respuesta aquí:
- Llamando a una función cada 60 segundos 8 respuestas
JQuery, cómo llamar a una función cada 5 segundos.
Estoy buscando una manera de automatizar el cambio de imágenes en una presentación de diapositivas.
Prefiero no instalar ningún otro complemento de terceros si es posible.
Las funciones mencionadas anteriormente se ejecutan sin importar si se completó en la invocación anterior o no, esta se ejecuta después de cada x segundos una vez que se completa la ejecución
// IIFE
(function runForever(){
// Do something here
setTimeout(runForever, 5000)
})()
// Regular function with arguments
function someFunction(file, directory){
// Do something here
setTimeout(someFunction, 5000, file, directory)
// YES, setTimeout passes any extra args to
// function being called
}
No necesitas jquery para esto, en javascript plano, ¡lo siguiente funcionará!
window.setInterval(function(){
/// call your function here
}, 5000);
Para detener el bucle puedes usar
clearInterval()
Sólo un pequeño consejo para la primera respuesta. Si su función ya está definida, haga referencia a la función pero no la llame !!! Así que no ponga ningún paréntesis después del nombre de la función. Al igual que:
my_function(){};
setInterval(my_function,10000);
Tanto setInterval
como setTimeout
pueden funcionar para usted ( como @Doug Neiner y @John Boker escribieron, ambos apuntan ahora a setInterval
).
Consulte here para obtener una explicación más detallada acerca de ambos para ver cuáles son sus suites más y cómo detener cada una de ellas.
Un buen ejemplo donde suscribir un setInterval (), y usar un clearInterval () para detener el ciclo forever:
function myTimer() {
console.log('' each 1 second...'');
}
var myVar = setInterval(myTimer, 1000);
llame a esta línea para detener el bucle:
clearInterval(myVar);
puede registrar un intervalo en la página usando setInterval, es decir:
setInterval(function(){
//code goes here that will be run every 5 seconds.
}, 5000);
puede usar window.setInterval y el tiempo debe definirse en milisegundos, en el siguiente caso, la función llamará después de cada segundo (1000 milisegundos)
<script>
var time = 3670;
window.setInterval(function(){
// Time calculations for days, hours, minutes and seconds
var h = Math.floor(time / 3600);
var m = Math.floor(time % 3600 / 60);
var s = Math.floor(time % 3600 % 60);
// Display the result in the element with id="demo"
document.getElementById("demo").innerHTML = h + "h "
+ m + "m " + s + "s ";
// If the count down is finished, write some text
if (time < 0) {
clearInterval(x);
document.getElementById("demo").innerHTML = "EXPIRED";
}
time--;
}, 1000);
</script>