これを解決する方法はいくつかありますが、問題にどのように取り組むかを決める必要があります。これが私が知っている2つです:
1)クライアントからのリクエスト。
2)サーバーからプッシュします。(技術的にはまだクライアントからのリクエスト)
1 --A)クライアント側でプログラムされたJavascript関数からのリクエスト。Javascript拡張機能またはJavascriptコンポーネントを使用してコンポーネントをレイアウトにアタッチし、サーバー側のAPI関数を呼び出してリクエストを行います。その後、そのリクエスト内でテーブルを更新でき、同期の問題について心配する必要はありません。
1 --B)1Aを実行するために独自のGWT / Vaadinウィジェット(基本的に同じもの)を作成します。
2-A)「サーバー側」でプログラムされたVaadinコンポーネントからの要求。サーバーをポーリングする表示(または非表示)の進行状況インジケーターを作成します。バックグラウンドスレッドでテーブルにデータを入力すると、Vaadinは現在収集したデータを送信します。進行状況インジケーターはこれを何度も実行でき、テーブルは差をクライアント側のコード(デルタと呼ばれる)にのみ送信します。バックグラウンドスレッドからクライアント向けコンポーネントを更新する場合は注意が必要です。同時変更エラーを回避するには、コンポーネントへの変更を同期する必要があります。
2--B)アプリケーションにリフレッシャーを追加し、進行状況インジケーターを必要とせずに上記の2Aに従います。
どちらのソリューションでも、バックグラウンドスレッド(2A、B)またはクライアントから呼び出されたサーバーメソッド(1A、B)のいずれかで、テーブルを明示的に更新する必要があります。そして、どちらも技術的にはクライアントリクエストベースです。Vaadinチームは、真の「プッシュ」の追加に取り組んでいます。