Асинхронные запросы vaadin - PullRequest
1 голос
/ 26 мая 2011

Я не нашел документации о том, как обновлять vaadin объектов асинхронно.Может кто-нибудь мне помочь?Что мне нужно, это отрендерить таблицу, а затем обновить значения столбца с помощью вызова довольно медленно, поэтому я хочу сделать его асинхронным ..

Ответы [ 3 ]

3 голосов
/ 26 мая 2011

Об этом много говорилось в этой теме на форуме Vaadin.Возможно, вы захотите прочитать его, он содержит много полезной информации.

1 голос
/ 17 октября 2011

Насколько я знаю, Vaadin предоставляет два дополнения для решения этой проблемы: ServerPush и DontPush . Оба дополнения можно импортировать через maven, и оба поддерживают WebSockets, а также резервные решения для браузеров без поддержки WebSocket. Хотя ServerPush предоставляет на первый взгляд больше возможностей, чем DontPush, его рейтинг ниже, чем у DontPush, возможно потому, что он сложнее.

Для отправки обновлений на клиент DontPush предлагает очень простое решение, которое не требует никаких изменений в веб-приложении. Только класс сервлета в web.xml необходимо заменить на org.vaadin.dontpush.server.impl.jetty.DontPushServlet, а набор виджетов должен быть впоследствии обновлен с помощью mvn vaadin:update-widgetset. Это все. Любые изменения на сервере будут автоматически отправлены клиенту. Я успешно протестировал это дополнение с Chrome 14. К сожалению, я не смог заставить его работать с Firefox 7.

Согласно веб-странице ServerPush, надстройка ServerPush также должна обеспечивать эту функцию. Однако я не мог понять, как настроить ServerPush для работы с Jetty. Более того, он кажется более сложным в использовании. Требуется несколько изменений в файле web.xml, а также дополнительные файлы конфигурации для сервера атмосферы.

В отличие от DontPush ServerPush предоставляет также явный механизм проталкивания, который позволяет вручную обновлять графический интерфейс, вызывая метод push() определенного компонента-толкача, который необходимо предварительно добавить в главное окно. Однако мне также не удалось заставить это работать.

1 голос
/ 27 мая 2011

Просто делайте обновления в другой теме. Изменения пользовательского интерфейса из фоновых потоков должны быть синхронизированы с объектом приложения. Добавьте icepush, refresher или proggresbar для получения изменений от сервера к клиенту.

...