javascript carga - ¿Cuál es la forma más fácil de llamar a una función cada 5 segundos en jQuery?




datos bootstrap (7)

Esta pregunta ya tiene una respuesta aquí:

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.


Answers

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
}

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);

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.


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() 

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);

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);

 var output = [];
 var length = data.length;
 for(var i = 0; i < length; i++)
 {
    output[i++] = '<option value="' + data[i].start + '">' + data[i].start + '</option>';
 }

 $('#choose_schedule').get(0).innerHTML = output.join('');

He hecho algunas pruebas y esto, creo, hace el trabajo más rápido. :PAG





javascript jquery jquery-plugins timer