1

私のユーザー インターフェイスでは、ユーザー リクエストの作業の完了率を示すプログレス バーを実装しようとしています。

私のバックエンド REST サービスは、多くの計算を行う必要があります。したがって、比較的遅いです。バックエンドでの作業が終了したことをユーザーに示したい。例: タスク 1 が終了し、タスク 2 に取り組んでいます (したがって、進行状況バーに 50% が表示されます)。

私の問題:

サービスは、タスク全体が完了した後にのみ結果を返します。作業の特定の割合が完了したことをユーザーに示すための中間フィードバックを取得する方法がわからないので、ユーザーは辛抱強く待つ必要があります。

明確にするために、次のいずれかを提案する前に:

  1. gif Ajax ローダーを使用したくありません。

  2. サービスは既に最適化されており、これ以上微調整することはできません。

  3. サービス作業はすでに非常にアトミックです。追加のネットワーク トラフィックによるパフォーマンスの低下を引き起こさずに、複数のサービスにさらに分割することはできません。

上記を実行できない場合はお知らせください。検索を停止できます。

4

1 に答える 1

1

やりたいことは、HTTP サーバーとの双方向通信であり、基本的には 2 つの方法があります。

  • Rest-Polling : クライアントが計算の現在のステータスを取得するために定期的にポーリングできる 2 番目の API 呼び出しを設定します。

  • WebSockets : クライアントとサーバーの間に WebSocket 接続をセットアップします。これにより、サーバーはクライアントへの通信を開始し、タスクが終了するとすぐにメッセージを送信できます。そのためだけに WebSocket を追加すると、Rest-Polling よりも多くのネットワーク トラフィックが発生する可能性があります。

これらのどれもあなたにとって選択肢がない場合、あなたが望んでいることは可能ではないと思います.

于 2013-05-21T16:38:11.657 に答える