J'ai un élément sur ma page que je voudrais augmenter de temps en temps:périodiquement Animer-up d'un numéro avec Javascript
<p class="count">28</p>
Dans mon javascript, j'ai un intervalle qui fonctionne une fois 5 secondes et attrape de manière asynchrone le nouveau numéro (le plus élevé) du serveur. Cela fonctionne un peu dans le sens d'un compteur.
setInterval(function(){
$.post("getcount.php", function(num){
latestNum = num;
});
}, 5000);
Si la requête asynchrone tire le numéro 56, je voudrais voir le changement de texte du paragraphe 28-56, montrant beaucoup (ou plus) ou les intermédiaires alors qu'il incrémente. Ce que je suis en train de faire est de définir un autre intervalle pour vérifier en permanence le texte du paragraphe, et la variable locale. Si le texte du paragraphe est inférieur à la valeur de la variable, il l'incrémente de 1. Il le fait toutes les demi-secondes.
setInterval(function(){
currNum = Number($(".count").text());
if (currNum < latestNum)
$(".count").text(currNum + 1);
}, 50);
Ma question est la suivante: Y at-il une meilleure façon de le faire sans avoir un intervalle constamment en cours d'exécution? Est-ce que j'invoque quelque chose que je peux invoquer à partir de la réponse d'une requête asynchrone, et que je l'arrête une fois que les deux nombres se sont rencontrés? Je dois également noter qu'il existe la possibilité que la prochaine demande ait lieu avant que les deux nombres aient été rapprochés en valeur.
Comment le collectif vous le faire?
Ouais, mais alors vous perdez l'animation de la mise à jour du numéro ... – marcgg
Je veux animer à travers les intermédiaires. Cette approche remplacerait simplement la valeur actuelle par la nouvelle valeur. – Sampson
c'est cool. L'avez-vous testé? – marcgg