woonem
@woonem

Как показывать точное время на сайте?

Как точно определить задержку передачи данных для показа правильного времени?
Практически все сервисы точного времени через интернет имеют погрешность 0.4 сек.
  • Вопрос задан
  • 718 просмотров
Решения вопроса 3
swanrnd
@swanrnd
Издатель HTML5 игр
1) возьмите хороший сервер, который быстро отдает результаты и находится близко к географии целевой аудитории.
2) перед тем как отправлять AJAX запрос зафиксируйте текущее клиентское время.
3) отправьте запрос, желательно без хлама. Минимум данных на входе и минимум на выходе. Уложится хорошо бы в 1460 байт на все. keep-alive включен. GZIP выключен.
4) фиксируйте текущее клиентское время.
5) Время_сервера - (разница_между_клиентскими/2).

Погрешность будет меньше, но останется. Как минимум отрисовка на странице времени тоже занимает время)
Ответ написан
madmages
@madmages
Человек прямоходящий
вывести серверный код для получения времени в отдельный файл (без подключений к БД и других тяжелых вещей).
регистрировать в браузере начало соединения с сервером и конец запроса и к полученному результату плюсовать половину того времени что ушло на получение результата. по идее, погрешность в таком случае должна быть минимальной (навскидку менее 0.1с если запрос шел не более 300мс)
Ответ написан
kirill89
@kirill89
Можно поставить несколько серверов в разных местах и воспользоваться алгоритмом Марзулло. А их синхронизацию обеспечить по NTP.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@ollisso
как вариант: используйте вебсокеты - задержка сократится в разы.
.. правда может не работать на мобильных клиентах - надо тестировать.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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