2012-03-07 42 views
4

我遇到以下问题。说,用户可以点击一些用户界面组件。每次点击都需要大量计算并显着改变其他UI组件,因此它非常昂贵。点击顺序并不重要。Vaadin举办活动

因此,在某段时间内保持事件会很酷,并且只有在这段时间内没有其他事件发送给服务器。否则,应忽略除最后一个事件以外的所有事件。

有没有办法在Vaadin中实现这样的行为?

最好的问候,德米特里。

回答

1

您的应用程序在单个会话中运行。鉴于并非所有UI组件都会触发昂贵的重新计算,您可以将侦听器与您的事件相关联。存储该事件的副本,并启动计时器线程。如果有新的请求进入,请刷新先前的值。这里的关键要素是你必须启动一个线程,否则你的UI将挂起。

0

补充其他答案。 vaadin的书中有一个关于进度指标的例子。这显示了如何保持UI响应并采取线程来处理事件。您可以创建一个包含计时器的线程并从事件线程接收消息。计时器线程将根据您实施的限制做出响应。 检查进度条代码,一个线程例子vaadin:

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