Уведомления в Facebook - PullRequest
       2

Уведомления в Facebook

3 голосов
/ 25 апреля 2011

в фейсбуке. вы получаете уведомления, когда кто-то отправляет вам сообщение. Это делается без участия пользователя. Как это срабатывает?

Могу ли я достичь чего-то подобного, используя jsp, jQuery - ajax?

Как это возможно. Потому что я обычно делаю что-то, основываясь на нажатии клавиш или когда пользователь обновляет свой браузер. Как вы можете узнать, когда вы получите сообщение?

Ответы [ 3 ]

2 голосов
/ 25 апреля 2011

Существует множество способов для сервера отправлять сообщения клиенту. Некоторые из них:

  • «Комета», где XmlHttpRequest 's onreadystatechange - это (ab), чтобы позволить серверу «транслировать» события, уведомления и другие оперативные данные в браузер. Сейчас это устарело, но это наиболее совместимый метод. Смотри http://en.wikipedia.org/wiki/Comet_(programming))
  • WebSockets, который позволяет HTML5-совместимому браузеру и соответствующему веб-серверу установить двусторонний сокет. Смотри http://en.wikipedia.org/wiki/WebSockets
  • Отправляемые сервером события, такие как WebSockets, и доступные только в некоторых браузерах. Они, в отличие от WebSockets, не нуждаются в специализированном веб-сервере, а только позволяют серверу передавать события в браузер, а не наоборот. Смотри http://en.wikipedia.org/wiki/Server-sent_events

Я бы предложил использовать плагин jQuery EventSource, который использует отправленные сервером события, когда они доступны, и, когда недоступен, возвращается к Comet: https://github.com/rwldrn/jquery.eventsource

0 голосов
/ 25 апреля 2011

Существует два метода обновления клиента на основе данных сервера - один из них - заставить клиента опрашивать сервер через определенные промежутки времени (jQuery позволит вам сделать это с помощью чего-то вроде

setInterval(function() { $.post('my_url_here', myCallbackFunction) }, 1000);

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

Если вы заглянете в websockets, node.js и т. Д., Вы можете легко достичь того же, но это большая кривая обучения, и вам также нужен сервер, на котором вы можете запустить программное обеспечение. Node - это хорошее решение, которое обеспечивает прозрачную связь между клиентом и сервером, и поставляется с парой примеров, таких как демонстрационная комната для чатов

0 голосов
/ 25 апреля 2011

Конечно - вы можете использовать jQuery (или любой другой метод доступа к AJAX-запросам) для опроса сервера. В вашем JavaScript установите интервал для опроса (setInterval(myAjaxFunction)), а затем используйте метод, подобный jQuery.get() (http://api.jquery.com/jQuery.get/), для запроса информации с сервера.

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