/ / Comment puis-je obtenir un rythme d'exécution chronométré à l'aide de setTimeout? - javascript, settimeout

Comment puis-je obtenir un rythme d'exécution de chronométrage à l'aide de setTimeout? - javascript, settimeout

J'ai essayé de coder les instructions Java Script exécutées par setTimeout. Mon code ajoute des éléments à une toile. Je voulais obtenir une sorte d’animation dans laquelle des éléments graphiques sont ajoutés à la toile un à un après quelques secondes.

J'ai essayé:

for (series in respuesta) {
if (series != "x" && series != "y" && series != "raiz") {
(function(x){
setTimeout(function(){  plot.highlight(1,[respuesta[x].a,0])
plot.highlight(1,[respuesta[x].b,0])},
2500,c,x);
c++;
}(series))

}
}

Cependant tout ce que je reçois tous les staments exécutés à la fois après un délai. Je pensais vraiment que comme chaque setTimeout est un pas dans une boucle. J'aurais n retards pour chacun des total n itérations.

Y at-il même un moyen simple de faire cela en utilisant jQuery ou une bibliothèque?

Réponses:

1 pour la réponse № 1

Vous définissez les délais d'attente dans une boucle. Pourquoi ne pas incrémenter 2500 ms pour chaque itération de boucle afin qu’ils soient espacés uniformément, au lieu d’être retardés du même temps.

var  timeout = 2500;
for (series in respuesta) {
if (series != "x" && series != "y" && series != "raiz") {
(function(x){
setTimeout(function(){  plot.highlight(1,[respuesta[x].a,0])
plot.highlight(1,[respuesta[x].b,0])},
timeout,c,x);
c++;
timeout += 2500;
}(series))

}
}

3 pour la réponse № 2

Tu devrais utiliser setInterval(). Cela répète la même fonction encore et encore à certains intervalles:

 var i = 0;
var myItems = ["a", "b", "c"]
var myHandle = setInterval(function() {

// Add new items here.

i++;

if (i >= myItems.length) {
clearInterval(myHandle);
}

}, 1000) ;

0 pour la réponse № 3

essayez setInterval () dans jQuery

setInterval(function() {
// Do something every 5 seconds
}, 5000);