2012-03-07 73 views
4

我遇到以下問題。說,用戶可以點擊一些用戶界面組件。每次點擊都需要大量計算並顯着改變其他UI組件,因此它非常昂貴。點擊順序並不重要。Vaadin舉辦活動

因此,在某段時間內保持事件會很酷,並且只有在這段時間內沒有其他事件發送給服務器。否則,應忽略除最後一個事件以外的所有事件。

有沒有辦法在Vaadin中實現這樣的行爲?

最好的問候,德米特里。

回答

1

您的應用程序在單個會話中運行。鑑於並非所有UI組件都會觸發昂貴的重新計算,您可以將偵聽器與您的事件相關聯。存儲該事件的副本,並啓動計時器線程。如果有新的請求進入,請刷新先前的值。這裏的關鍵要素是你必須啓動一個線程,否則你的UI將掛起。

0

補充其他答案。 vaadin的書中有一個關於進度指標的例子。這顯示瞭如何保持UI響應並採取線程來處理事件。您可以創建一個包含計時器的線程並從事件線程接收消息。計時器線程將根據您實施的限制做出響應。 檢查進度條代碼,一個線程例子vaadin:

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