Я устанавливаю таймер в Node.js, который ждет 3 часа, чтобы испустить событие, как только это время будет достигнуто, оно выдает событие всем прослушиваемым браузерам.Насколько точным является setTimeout/setInterval в Node.js и в браузере?
Браузеры собирают информацию о том, что такое событие до этого происходит, а затем вычисляет время, оставшееся до следующего обратного отсчета, и ожидая, что, когда часы достигнут 0, событие будет запущено.
Таким образом, вы используете setTimeout
(Node.js), а другой использует setInterval
(браузер) подсчет в секунду (обратный отсчет времени).
Могу ли я быть уверенным, что?
- К тому времени, когда обратный отсчет достигнет 0, событие будет запущено с диапазоном ошибок от 1 до 2 секунд. (Браузер).
- То, что Node.js
setTimeout
достаточно точен, чтобы называться с диапазоном ошибок менее 1 секунды.
Я читал о том, что таймеры составляют от 500 мс до 1000 мс, что является прекрасным для моих нужд, но я никогда не слышал, чтобы они использовались в течение этого времени, как я хочу.
Насколько они точны или я должен использовать другое решение? особенно на стороне Node.js, которая должна быть наиболее точной из всех.
- Альтернативы сделать интервал в Node.js, который работает около 4 раз в секунду, вычисляет дату миллисекунду, и проверяет, есть ли событие, которые ему нужно вызывать из списка событий.
- В браузере устанавливается интервал так, чтобы он вычислял дату ms с каждым обратным вызовом, чтобы попытаться сохранить синхронизированное время.