Для web-приложения на js требуется достоверный реализовать таймер.
Сейчас для этого используется setTimeout, но, как показала практика, если вкладка с приложением не активна, то таймер начинает отставать по страшному, особенно сильно врет в хроме. Это из-за того что у неактивных вкладок приоритет выделения ресурсов ниже и если компьютер активно используется, то код в неактивной вкладке просто не выполняется пока ресурсы не появятся.
Собственно вопрос: есть ли какие-то нативные функции js или api, которые позволяют реализовать достоверный таймер.
Aves: Там несколько таймеров фактически. На каждый таймер срабатывает свой набор функционала. И, да, на секунду тоже есть, по секунде только генериться событие о прошествии секунды, дальше это событие подхватывает нужный обработчик
.
Юрий: тайм-аут - совсем не точная функция. В зависимости от необходимой точности возможно придётся писать коррекцию, но делать это все равно лучше в воркере.
Протестил workers на предмет точного времени. Работает отлично в ff и хроме результат одинаковый, точность +- 1 мс. К сожалению нет возможности потестить на слабой машине где может ощущаться нехватка ресурсов.