Пытаюсь реализовать секундомер с выводом времени с точностью до 1\100 секунды. При использовании функции setInterval возникают заметные неточности во времени (примерно каждые 30 секунд секундомер отстает на 1 секунду). Если точность уменьшить до 1\10 секунды, то отставание незаметно (по логике должен отставать на секунду каждые 5 минут).
...
hoursVal = minutesVal = secondsVal = msecondsVal = 0;
var interval = setInterval(function(){
if (msecondsVal < 99) {
mseconds.innerText = ++msecondsVal;
} else {
mseconds.innerText = msecondsVal = 0;
if (secondsVal < 59) {
seconds.innerText = ++secondsVal;
} else {
seconds.innerText = secondsVal = 0;
if (minutesVal < 59) {
minutes.innerText = ++minutesVal;
} else {
minutes.innerText = minutesVal = 0;
}
}
}
},10);
Вот код. Есть мысль, что задержка происходит из-за использования свойства innerText. Пробовал использовать два интервала (один для расчета, другой для вывода), но зря.
Как обойти данную проблему?
P.S. Пробовал использовать setTimeout, погрешность осталась.