Проведение мероприятий в Ваадине - PullRequest
4 голосов
/ 07 марта 2012

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

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

Есть ли способ реализовать такое поведение в Vaadin?

С уважением, Дмитрий.

Ответы [ 2 ]

1 голос
/ 13 марта 2012

Ваше приложение выполняется за один сеанс.Учитывая, что не все компоненты пользовательского интерфейса запускают дорогостоящий пересчет, вы можете связать слушателя с вашим событием.Сохраните копию события и запустите поток таймера.Если поступает новый запрос, сбросьте предыдущее значение.Ключевым элементом здесь является то, что вы должны запустить поток, иначе ваш пользовательский интерфейс будет зависать.

0 голосов
/ 11 июня 2012

В дополнение к другому ответу.В книге Ваадина есть пример потока для индикатора прогресса.Это показывает, как сохранить отзывчивость интерфейса и создать поток для обработки событий.Вы можете создать поток, который содержит таймер и получает сообщения от потоков событий.Поток таймера ответит в соответствии с введенными вами ограничениями.Проверьте индикатор выполнения для примера потока в vaadin:

https://vaadin.com/book/-/page/components.progressbar.html

...