我找不到有关如何异步更新对象vaadin的文档。谁能帮我?我需要的是渲染一个表,然后通过调用更慢地更新列的值,所以我想让它异步..
答案 0 :(得分:3)
在Vaadin论坛上thread对此进行了大量讨论。您可能想要阅读它,它包含许多有用的信息。
答案 1 :(得分:1)
只需在另一个帖子中进行更新即可。必须将后台线程的UI修改同步到应用程序对象。添加icepush,refresher或proggresbar以从服务器到客户端进行更改。
答案 2 :(得分:1)
据我所知,Vaadin为解决此问题提供了两个附加组件:ServerPush和DontPush。这两个附加组件都可以通过maven导入,并且都支持WebSockets以及没有WebSocket支持的浏览器的后备解决方案。虽然ServerPush提供的功能似乎比DontPush更多,但它的评级低于DontPush,可能是因为它更复杂。
为了将更新推送到客户端,DontPush提供了一个非常简单的解决方案,不需要对Web应用程序进行任何更改。只有web.xml中的servlet-class需要被org.vaadin.dontpush.server.impl.jetty.DontPushServlet
替换,之后必须通过mvn vaadin:update-widgetset
更新小部件集。就这样。服务器上的任何更改都将自动推送到客户端。我成功地使用Chrome 14测试了这个附加组件。不幸的是,我无法使用Firefox 7。
根据ServerPush的网页,ServerPush附加组件也应该提供此功能。但是,我无法弄清楚如何设置ServerPush以使用jetty。而且,使用起来似乎更复杂。它需要对web.xml进行多处更改以及大气服务器的其他配置文件。
与DontPush相比,ServerPush还提供了一种显式推送机制,允许通过调用某个推送组件的push()
方法手动更新GUI,该方法需要事先添加到主窗口。但是,我也没能做到这一点。