2012-01-18 5 views
1

с использованием jsf2.0 и PrimeFaces 3.0.RC2, я хочу сделать <p:dataTable />, что contais мой системный запрос и когда один пользователь имеет запрос. я должен обновить статус этого запроса и обновить все остальные пользователи <p:dataTable />, что они работают с системой. Как я могу это сделать? enter image description hereКак создать приложение реального времени

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

и если какой-либо из них добавлена ​​новая модель в БД, это должно появиться.

я имею в виду пример, как электронная почта

ответ

0

Другие пользователи не могут пассивно знать (через HTTP), когда что-то изменилось на стороне сервера. Вы должны как-то активно опросить сервер и обновить изменения в пользовательском интерфейсе. Вы можете сделать таймер, который проверяет все х секунд или делать это в разных событиях браузера (например, когда пользователь больше не использует окно браузера, а затем возвращается к нему).

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

0

Вам необходимо найти так называемые push, reverse_ajax или comet техники. PrimeFaces реализует эту технологию с помощью сервлета, но работает только на сервере Jetty. Посмотрите главу 6 Руководства пользователя.

Также ознакомьтесь с cometD, зрелым проектом, который обеспечивает реализацию протокола Bayeux на javascript и других языках. Этот проект также использует Jetty, но переносится на другие сервлет-совместимые сервлет-3.0-совместимые контейнеры. Я запускаю его на сервере GlassFish без каких-либо проблем, но на стороне клиента у меня есть dojo dataGrid. Вы можете попытаться интегрироваться в DataTable PrimeMaces через Javascript, хотя я еще не сделал этого, и не уверен, что это простая задача или нет.

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