polyak-888
@polyak-888
Js, React.js, css, frontend

Как сделать чтобы секундомер не останавливался при переходе на другую владку?

Всем привет, есть такой код:
5df8ebdc609d6000679206.jpeg
Как сделать чтобы при переходе на другую вкладку браузера и последующем возвращении секундомер работал корректно.
  • Вопрос задан
  • 991 просмотр
Решения вопроса 2
joeberetta
@joeberetta Куратор тега JavaScript
Читай: https://epdf.pub/google-for-dummies.html
Логика значит такая.
При создании таймера получаете время его запуска и записываете в localStorage, при определении неактивного состояния страницы записываете это время туда же. И при возвращении высчитав разницу во времени продолжаете считать с нужного момента.
Ответ написан
Комментировать
Stalker_RED
@Stalker_RED
Это плохой секундомер, неправильный.
setInterval(foo, 1000) будет срабатывать не каждую секунду ровно, а МИНИМУМ через секунду, и будет накапливаться ошибка.
По хорошему надо хранить стартовое (или финишное) время, на каждом тике сравнивать текущее время (new Date()) со стартовым, и только потом отрисовывать циферки на дисплей.

Тогда и проблема с переходом на другую вкладку решается очень просто - стартовое время пишется в localStorage, например. При смене страницы оно просто оттуда читается, и таймер продолжает работу в обычном режиме.

И не выкладывайте код скриншотами, пользуйтесь кнопочкой </>
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы