2013-02-18 1 views
0

Я работаю над проектом, который построен на Springs MVC и Google App Engine с Objectify.Содержание страницы Обновлено через веб-разъем или AJAX

Основные функции этого приложения: Если кто-то отправляет что-то новое в хранилище данных, он должен быть автоматически опубликован в браузерах, к которым он подключен, без обновления содержимого страницы. В основном это новость как сайт. Данные, отправленные в браузер, - это данные JSON Data на основе REST.

Для реализации этой функции я думал использовать следующие способы:

  1. AJAX: Я думал об использовании AJAX вызова через каждые 2-3 минут, чтобы получить обновление. Но это решение кажется нецелесообразным, так как существует много операций чтения данных из-за многих вызовов AJAX из многих браузеров.

  2. Web Socket: Эта концепция для меня довольно новая. Я не знаю об этом. Некоторые pusher.com использует эту технологию для установления таких соединений.

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

+0

WebSocket определенно быстрее и эффективнее, чем традиционный Ajax, но если вы используете WebSocket, вам, вероятно, еще нужно будет скопировать резервную копию Ajax для старых браузеров, которые не поддерживают WebSocket. – HartleySan

+0

сэр, можете ли вы предложить мне несколько примеров с помощью веб-сокетов. Мне нужно, чтобы это приложение запускалось в мобильных браузерах, поэтому, возможно, мне не нужно кодировать AJAX. –

+0

Возможно, вы используете API канала. https://developers.google.com/appengine/docs/java/channel/ – voscausa

ответ

0

Google app engine не поддерживает веб-сокеты, однако он поддерживает что-то похожее, называемое каналом api, которое работает и в старых браузерах. Это может быть невозможно в зависимости от того, сколько людей вы подключились (стоимость каналов 1c на 100). В каналах также есть некоторые оговорки: https://developers.google.com/appengine/docs/python/channel/overview#Caveats

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

Смежные вопросы