@maxdubovik

Как создать часы на JS c привязкой к серверному времени?

Доброго времени суток, друзья. Встал вопрос написания часов на JS для интернет магазина.
Задумка вся в том, что бы часы показывали время до конца рабочего дня магазина(До конца рабочего дня осталось чч:мм), а так же( рабочий день начнется через чч:мм)
И так-как я в JS пока еще профан, хочу спросить у Вас помощи в данном вопросе. Возможно встречались с подобными вопросами на форумах или же просто подскажите, что следует изучить по данному вопросу (кроме уроков по JS).
P.S. Точка отсчета - серверное время.
P.S.S JS попал в мое изучение не так давно, простите, может, за неуместный вопрос на этом форуме.
Всем чистого кода.
  • Вопрос задан
  • 401 просмотр
Решения вопроса 1
Stalker_RED
@Stalker_RED
При загрузке страницы передаете время сервера.
На клиенте берете текущее время, вычисляете насколько оно отличается от серверного.
Затем по setInterval() раз в секунду берете время клиента, применяете к нему поправку, и обновляете циферки на дисплее.

Делать сам отсчет на setInterval(..., 1000) - идея так себе, потому что он вообще не гарантирует, что следующий вызов функции будет через секунду. Он гарантирует, что вызов будет НЕ РАНЬШЕ ЧЕМ через секунду. Ну и есть еще замедление работы при переключении вкладки, сворачивании окна, а так же уход компьютера в сон, гибернацию, вот это все.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@Azperin
Дилетант
Ну при загрузки страницы отдаете таймстамп серверного времени, а на клиенте сетинтервалом поддерживаете. Если надо именно до конца рабочего дня, то проще на сервере вычесть "сколько до конца - текущее время = осталось", этот остаток и скидываете клиенту и опять же каким-нибудь интервалом минусуете по секунде.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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