web-dev-qa-db-ja.com

WCF呼び出し(silverlight)を使用したリアルタイムデータの表示

現在、データベースからすべてのデータを取得してグリッドにバインドするWCFメソッドがありますが、このメソッドを定期的に呼び出して、更新されたデータを毎回取得し、ユーザーにリアルタイムデータを表示したいと思います。これについて最善の方法は?

前もって感謝します。

4
user1047278

うーん、

アプリケーションの機能がわからないのですが、こんな感じでやってみませんか?

  • 何があなたのデータベースにデータを常に入れていますか?それをグリッドに与えるだけではどうでしょうか(もちろん、フォーマットとデータの非表示が少し必要になる場合があります/または特定の制限までアプリケーションレベルでデータを保存する必要があります)。

ここで、dbを更新するには、グリッドがそのアプリケーションレベルのストレージまたはデータグリッドから10行などを追加したときに、dbを更新してみませんか。

  • これにより、db呼び出しが少なくなり、レイテンシーが増加します。また、あなたをリアルタイムにします。
  • 考え?
1
Developer

これでパラプラの答えを確認してください 質問
このアプローチはロングポーリングと呼ばれ、シンプルであり、サーバー側から利用できるときに必要なデータを提供します。
このブログを確認してください より詳細なサンプルクラスについては。

1
user41173

私はbackgroundworkerスレッドを作成し、それを無限ループに入れます。指定された期間(おそらく2秒?)が経過し、前のリクエストの結果をまだ待っていない場合は、リクエストを非同期でサービスに送信できます。完了イベントが発生したら、UIを更新します。

とは言っても、大量のデータが含まれている場合は、最後に受け取ったデータと現在のデータ(つまり、追加、更新、削除)の違いのみを取得できる方法があったかどうかを確認します。毎回再バインドするのではなく、グリッドデータにこれらの変更を加えるだけです。

0
competent_tech