Использование шаблона наблюдателя с EJB и AJAX - PullRequest
3 голосов
/ 03 марта 2009

Я хочу создать Ajax GUI, который уведомляется о любых изменениях состояния, происходящих в моем приложении ejb. Чтобы достичь этого, я подумал, что создаю сохраняющий состояние ejb (3.0), который реализует интерфейс Observable, к которому клиент Ajax добавляется в качестве наблюдателя. Во-первых, возможно ли это с Ajax. Если да, это хорошая дизайнерская идея или есть более подходящий способ сделать это?

Заранее спасибо!

Приветствия

Andreas

Ответы [ 2 ]

2 голосов
/ 03 марта 2009

Звучит так, как будто вы заинтересованы в 'Reverse-Ajax', где клиент получает уведомление, когда событие происходит на стороне сервера. Это отличается от стандартного Ajax, где асинхронное событие отправляется на сервер в зависимости от действия клиента. Возможен обратный Ajax, и одна структура, которая очень хорошо справляется с этой задачей и упрощает основную сложность, - это DWR.

http://directwebremoting.org/dwr/reverse-ajax

Возможно, вы захотите ознакомиться с влиянием на производительность различных способов реализации в зависимости от ожидаемой нагрузки, контейнера веб-приложения и т. Д., Независимо от того, какую платформу вы используете.

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

0 голосов
/ 06 июля 2011

Теперь, через некоторое время, появится новый возможный ответ на ваш вопрос: использование Websockets

с ранее связанного веб-сайта от Пит : «Сеть не была предназначена для того, чтобы веб-серверы могли устанавливать соединения с веб-браузерами ...» Теперь это меняется с html5.

http://en.wikipedia.org/wiki/WebSockets

...