Схема кода для страниц автообновления - PullRequest
4 голосов
/ 22 февраля 2010

Я хочу возиться с информацией в реальном времени, и есть довольно стандартная функциональность, которую я хочу дублировать:

Это происходит здесь, в SO, когда вы находитесь в режиме просмотра одного вопроса, набираете свой ответ, и появляется всплывающее окно с сообщением «есть 3 ответа в новостях, нажмите, чтобы показать»

Это также происходит в Твиттере "В этом поиске 5 новых твитов: нажмите, чтобы обновить"

Я довольно разбираюсь в коде на стороне сервера и на стороне клиента, и мне нужна базовая схема (даже не код psuedo, а, возможно, простой английский), как что-то подобное происходит.

Есть ли на сервере еженедельно запущенное задание CRON, которое подает сигнал на долго опрашиваемый бит AJAX на странице?

Опрашивает ли сама страница сервер?

Любые и все решения приветствуются. Спасибо!

Ответы [ 3 ]

1 голос
/ 22 февраля 2010

Это можно реализовать с помощью вызова AJAX, который выполняется на стороне клиента через регулярные промежутки времени, с помощью метода Javascript setTimeout. У вас будет функция Javascript, которая вызывает ваш серверный метод, который проверяет, произошло ли обновление, отображает любое обновление, а затем вызывает setTimeout, чтобы вызвать себя.

псевдокод:

function updateCheck()
{
  //make ajax call
  //do something if any update has occurred
  setTimeout("updateCheck()", 10000); //second param is in milliseconds
}
1 голос
/ 22 февраля 2010

Я бы сделал это с помощью javascript - установив тайм-ауты для опроса сервера Это только обоснованное предположение.

0 голосов
/ 22 февраля 2010

Похоже, что SO использует периодическое средство обновления для отправки ajax-запроса к URL-адресу, например:

https://stackoverflow.com/posts/2307584/answer-activity-heartbeat

Возвращает результат в формате JSON:

{"Result":false,"Count":0}

Вот пример результата, когда существует новый ответ:

{"Result":true,"Count":1}
...