我正在尝试使用以下代码在vaadin中使用PollListener
:
@VaadinUI
@PreserveOnRefresh
public class ApplicationUI extends UI {
@Override
protected void init(VaadinRequest request) {
setPollInterval(1000);
access(new Runnable() {
@Override
public void run() {
System.out.println("TEST POLL: " + counter++); //is only printed a single time
}
});
}
}
打开应用程序时,打印输出“TEST POLL 0”一次。但就是这样。我可能错过了什么?
答案 0 :(得分:7)
你不必做任何事情,polling example明确指出:
通过执行此操作,浏览器将每次轮询服务器" timeout" ms和 检索任何可能挂起的更改
因此,无论您在应用程序中执行了什么操作,都会在下次轮询时在客户端浏览器上更新。在该示例中,您应该看到在加载UI后5秒钟显示标签,而没有任何特殊的用户交互。
但是,如果您需要为每个此类请求执行一些代码,那么您可以添加pollingListener
@Override
protected void init(VaadinRequest request) {
setPollInterval(1000);
addPollListener(new UIEvents.PollListener() {
@Override
public void poll(UIEvents.PollEvent event) {
log.debug("Polling");
}
});
}