2

Web アプリケーションでいくつかのスレッドを作成し、JSF ページにデータテーブル コンポーネントがあります。

テーブルを自動的に更新して、スレッドの現在のステータスを表示したいと思います。このシナリオで使用できるビルド前のコンポーネントはありますか?

4

1 に答える 1

5

Web アプリケーションでいくつかのスレッドを作成しました

あなたが正しい方法でそれを行ったので、それが壮大な災害に終わらないことを心から願っています.


テーブルを自動的に更新して、スレッドの現在のステータスを表示したいと思います。このシナリオで使用できるビルド前のコンポーネントはありますか?

基本的に、「ポーリング」または「プッシュ」と呼ばれる手法を探しています。ポーリングの基本的な概念は、JavaScript を使用するsetInterval()setTimeout()、(ajax) HTTP 要求を一定間隔でサーバーに送信し、それに応じて結果を処理させることです。プッシュの基本的な概念は、永続的な HTTP 接続を開き、サーバーに小さなメッセージを送信させることです。これは、特にJava EE 7WebSocketの JavaScriptおよびJSR356 API で実行できます

標準の JSF 実装では、すぐに使用できるポーリングまたはプッシュ コンポーネントは提供されません。今後の JSF 2.3 に向けて、新しい<f:websocket>タグが現在進行中です (問題 1396も参照してください)。

あなたの最善の策は、非表示のコマンドリンク/ボタンを備えた非表示のフォームで<f:ajax>あり、それをsetInterval(). ただし、PrimeFaces のようなコンポーネント ライブラリは、すぐに使用できるコンポーネントを提供<p:poll><p:push>ます。JSF ユーティリティ ライブラリOmniFacesには、その<o:commandScript>ショーケースにポーリングの例があり、<o:socket>ショーケースにいくつかのプッシュの例があります (新しい標準 JSF<f:websocket>は主に に基づいています<o:socket>)。

以下も参照してください。

于 2012-12-14T14:07:56.790 に答える