Вопрос

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

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

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

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

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

Сама страница опрашивает сервер?

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

Это было полезно?

Решение

Вы можете реализовать это, используя вызов 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
}

Другие советы

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

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

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

Это возвращает результат JSON:

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

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

{"Result":true,"Count":1}
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top