我使用的是Vaadin7。在我的应用程序中有一个表列表,用户可以选择一个或多个项目来详细说明。如果单击执行按钮,UI组件将被禁用,两个线程启动:第一个线程执行繁重的计算,第二个线程更新UI上的进度指示器(使用lock()和unlock()方法)
在第1个线程的末尾:
从数据库中删除项目,删除所有组件并重新添加(启用)。通过这种方式,可以确保刷新表数据。
它工作得很好,但是当处理一个长任务时,UI不会刷新,表也会被禁用。
有人能帮我吗?
非常感谢
发布于 2013-04-30 22:04:33
请参阅https://vaadin.com/forum#!/thread/231272
简而言之,在Vaadin6.0和7.0中,您不能将更改从服务器“推送”到非请求线程的浏览器。(有针对v6的插件,但没有针对V7.0的插件)
在Vaadin 7.1 (尚未发布)中,这是可能的。有关更多详细信息,请参阅https://vaadin.com/wiki/-/wiki/Main/Enabling+server+push。
发布于 2013-05-02 20:20:29
您可以使用像ProgressIndicator一样定期刷新的组件。在线程完成后禁用它。这对我很有效。
https://stackoverflow.com/questions/16301476
复制相似问题