Как сделать постоянно обновляемую страницу? - PullRequest
4 голосов
/ 15 сентября 2010

Я пытаюсь создать на своем веб-сайте страницу, которая отображает новые загруженные элементы в в режиме реального времени .

Я думал, что вызов скрипта Ajax каждые 3 секунды было бы лучшим способом приблизиться к этому, однако мой сайт не получает новый загруженный элемент, который часто.Он также настолько изменчив, где-то между 30 секундами и 1 часом!

Кроме того, вызов скрипта каждые 3 секунды будет довольно громоздким на моем сервере, особенно если на одной странице много людей.

Я искал что-то вроде push-уведомления для PHP.Хотя это кажется надуманным, я ищу что-то, что, когда кто-то загружает что-то на веб-сайт, скрипт загрузки сообщает странице фида об обновлении.

Я увидел что-то под названием COMET - Хотя я читаю статьи / учебные пособиясмутило меня еще больше.

Итак, каков наилучший способ реализации постоянно обновляемой страницы?

1 Ответ

3 голосов
/ 15 сентября 2010

На стороне сервера вам понадобится скрипт, который может сообщать, есть ли новый контент (например, новые файлы) на основе метки времени (например, последний запрос). На стороне клиента у вас есть два варианта:

Polka aka Periodic Refresh :

Это в основном означает, что ваш клиент должен периодически опрашивать сервер, чтобы проверить, есть ли новые данные или нет. Вы хотите, чтобы ваши запросы и ответы были как можно более легкими. Также может помочь запуск сценария, обрабатывающего эти запросы, в отдельном процессе.

Вам будет необходимо настроить интервал на тот, который приемлем как для сервера, так и для пользователя. Вы также можете использовать Heartbeat , чтобы узнать, активен ли пользователь по-прежнему, поэтому вы можете прекратить опрос сервера, если пользователь оставил окно открытым, но выключил компьютер.

Потоковая передача HTTP, также известная как «Комета» :

Использование этого потребует дополнительных настроек; но в основном это долгоживущее соединение от клиента к серверу, и сервер может при необходимости «передавать» контент клиенту.

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