Как я могу реализовать панель инструментов в реальном времени? - PullRequest
1 голос
/ 04 августа 2011

Я хотел бы реализовать панель мониторинга в реальном времени, например, страницу индекса www.foursquare.com

Я проверил страницу индекса foursquare.com с помощью инструмента разработчика Chrome и удивился, что они не используют xhr для получения этих данных.информация ок.каждые 5 секунд.

Использование опроса ajax вызывает утечку памяти в некоторых браузерах и повышает нагрузку на сервер.

Есть ли способ эффективно реализовать инструментальную панель реального времени с помощью PHP и jQuery (AJAX)?

(Возможно, мне нужен дополнительный сервер, например, push-сервер?): |

Ответы [ 3 ]

0 голосов
/ 04 августа 2011

Домашняя страница Foursquare загружает 30 элементов (id=recent29, id=recent28, ...), но отображает только 11 одновременно.Таким образом, у вас будет ощущение в реальном времени около 90 секунд (после этого те же самые элементы появляются снова).

...
$('#recent'+toShow).slideDown(1000, move(i));
$('#recent'+i).slideUp(1000, move(i));
...

Для некоторых двунаправленных соединений клиент-сервер, посмотрите на websockets, хотя они еще не поддерживаются повсеместно, в конечном итоге они становятся стандартом.

W3C стандартизирует API WebSocket, а IETF стандартизирует протокол WebSocket.

0 голосов
/ 04 августа 2011

Вы можете использовать комету, особенно легко настроить и настроить APE:

http://www.ape -project.org /

Back-end написан на C, поэтому он очень быстрый.

0 голосов
/ 04 августа 2011

Одним из способов передачи данных клиенту является цикл, подобный следующему:

  1. Открыть запрос AJAX в браузере.
  2. Сервер ожидает открытия запроса, пока он не истечет время ожиданияили новые данные доступны.
  3. Сервер возвращает запрос либо с новыми данными, либо с таймаутом, и клиент немедленно открывает новый запрос.
...