На моей странице есть элемент, который я хотел бы время от времени увеличивать:
<p class="count">28</p>
В моем javascript у меня есть интервал, который запускается каждые 5 секунд и асинхронно захватывает новый (более высокий) номер с сервера. Это работает в некотором роде по принципу счетчика.
setInterval(function(){
$.post("getcount.php", function(num){
latestNum = num;
});
}, 5000);
Если асинхронный запрос сбрасывает число 56, я бы хотел, чтобы текст абзаца изменился с 28 на 56, показывая многие (или большинство) или промежуточные звенья при увеличении. В настоящее время я делаю еще один интервал для постоянной проверки текста абзаца и локальной переменной. Если текст абзаца меньше значения переменной, он увеличивает его на 1. Он делает это каждые полсекунды.
setInterval(function(){
currNum = Number( $(".count").text() );
if (currNum < latestNum)
$(".count").text( currNum + 1 );
}, 50);
Мой вопрос таков: есть ли лучший способ сделать это без постоянного запуска интервала? Является ли это анимированным приращением чем-то, что я могу вызвать из ответа асинхронного запроса, а затем прекратить его, как только два числа встретятся в значении? Следует также отметить, что существует вероятность того, что следующий запрос будет выполнен до того, как два числа будут согласованы по значению.
Как бы коллектив вы сделали это?