0

PollListener次のコードでvaadinで使用しようとしています:

@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」が一度だけ出力されます。しかし、それだけです。私は何を見逃したのでしょうか?

4

1 に答える 1

7

何もする必要はありません。ポーリングの例では、具体的に次のように述べています。

これにより、ブラウザは「タイムアウト」ミリ秒ごとにサーバーをポーリングし、保留中の可能性のある変更を取得します

したがって、アプリケーションで行ったことは、次のポーリングが発生したときにクライアント ブラウザーで更新されます。この例では、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");
        }
    });
}
于 2014-06-23T11:07:32.297 に答える