Синхронизация обновления браузера пользователя - PullRequest
0 голосов
/ 12 марта 2012

Я провел всестороннее исследование Google, но не могу найти хорошего решения, поэтому любая помощь (или просто указание направления следующего исследования) будет ДЕЙСТВИТЕЛЬНО оценена!

То, что мне нужно, просто по идее, но выглядит сложным для реализации:

У меня есть данные (скажем, просто картинка), которые я хочу показать всем (даже анонимным) пользователям сайта в одно и то же время. Эти данные должны регулярно меняться (скажем, раз в 5 минут), поэтому браузеры всех пользователей должны обновляться в заданное время.

Воф просто:

  • Пользователь откроет страницу с обратным отсчетом (который, конечно, покажет разное время для каждого пользователя в зависимости от того, когда пользователь подключился).

  • В конце обратного отсчета все браузеры подключенных пользователей обновятся, чтобы увидеть новый контент.

  • Обновление должно идеально запускаться сервером, чтобы предотвратить преждевременное обновление, когда данные еще не изменены.

Я думал об «обновлении» мета-тега, но он проблематичен для SEO и зависит от часов компьютера пользователя.

Это можно сделать с помощью javascript, но в этот момент я полагаюсь на часы компьютера пользователя.

Я слышал, что можно "передавать" данные с сервера в браузер, например, используя Perl, это правильно (есть ли где-нибудь пример)?

И на каком языке сценариев вы бы написали сценарий, который бы "тикал". Я не вижу пути в PHP, с которым я знаком (использование cron для выполнения скриптов подсчета каждую минуту выглядит действительно ужасно) ...

Спасибо!

Michal

1 Ответ

1 голос
/ 12 марта 2012

Невозможно передать данные с веб-сервера в веб-браузер, учитывая архитектуру запроса-ответа HTTP.Однако возможно опросить веб-сервер с помощью JavaScript и window.setInterval ();в сочетании с AJAX.

Если не используется локальное системное время, почему бы не отвечать на периодические запросы AJAX с количеством микросекунд до тех пор, пока не начнется следующая перезагрузка данных?Я бы предложил вам использовать AJAX для всего этого вместо обновления браузера с помощью META REFRESH или window.location.

Код на стороне сервера может быть чем угодно, вам просто нужна страница, которая будет возвращать числомикросекунд до следующего обновления расписания (и, возможно, ошибка, если обновление еще не запланировано, сообщая клиенту JavaScript о необходимости повторного опроса через несколько секунд).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...