3

データをリアルタイムまたは最高の状態で表示する必要がある ASP.NET Web アプリがあり、現在 AJAX と Web サービスを使用していますが、クライアントの数がどんどん増えているため、パフォーマンスの問題が発生しています。データは 5 ~ 10 秒ごとにプールされており、これが 1000 以上のクライアントで乗算されると、データの取得が非常に遅くなる可能性があります。

4

2 に答える 2

7

SignalRを使用して、リアルタイム データのニーズを処理することをお勧めします。サイトから:

ASP.NET SignalR は、ASP.NET 開発者向けの新しいライブラリであり、リアルタイム Web 機能をアプリケーションに非常に簡単に追加できます。「リアルタイム Web」機能とは何ですか? これは、サーバー側のコードで、コンテンツが発生したときに接続されたクライアントにリアルタイムでプッシュする機能です。

ブラウザとサーバー間の双方向通信を可能にする新しい HTML5 API である WebSockets について聞いたことがあるかもしれません。SignalR は、利用可能な場合は WebSocket を内部で使用し、利用できない場合は他の手法やテクノロジに適切にフォールバックしますが、アプリケーション コードは同じままです。

また、SignalR は、ASP.NET アプリケーションでサーバーからクライアントへの RPC (サーバー側の .NET コードからクライアントのブラウザーで JavaScript 関数を呼び出す) を実行するための非常にシンプルで高レベルの API を提供し、接続管理に役立つフックを追加します。たとえば、イベントの接続/切断、接続のグループ化、承認などです。

于 2013-02-25T14:15:53.813 に答える
1

次の 1 つまたは複数を試してください。

キャッシング – しばらくの間、アプリケーション データをメモリに保存することを検討していただけますか。これにより、データベース サーバーへの影響が軽減されます。

HTML 5 サーバー側イベント – サーバー側イベントを使用すると、変更が発生したときに実際にクライアントに通知できます (プーリングの代わりにデータをプッシュします)。基本的に、要求をプッシュする 1 つの ASP.NET イベント ハンドラー (ashx ページ) とクライアント側の JS コードが必要です。

サーバー サイド イベントの詳細とコード例については、この記事を参照してください。

于 2013-02-25T14:22:20.280 に答える