2012-04-20 6 views
1

これは一般的なアーキテクチャの質問です。私は約10のユーザーコントロールを持つ.aspxページを持っており、それぞれがその内容をレンダリングするためのWebサービスコールを発行しています。現時点では、Web呼び出しは同期的に行われるため、ページ全体のレンダリング時間は非常に遅い(> 2秒)。ASP.NETで複数のWebサービスコールで使用するパターン

非同期呼び出しを使用してコントロールをレンダリングし、ページの読み込み時間を短縮することを考えています。できれば新しいTPLライブラリを使って、それを行う方法について私にいくつかのリソースを教えてください。 (私はまだ非同期CTPを使いたくない)。私はタスクライブラリを使用して非同期呼び出しを作成する方法を知っていますが、シナリオ全体で複数のユーザーコントロール(それぞれ非同期Webサービスの読み込みが必要ですが、すべてのユーザーコントロールタスクが完了する前に完了する必要があります)

私は十分にはっきりしていたと思います。

おかげ THEMOS

答えて

0

おそらく、各コントロールからの非同期呼び出しを必要としますが、ページ全体の負荷の非同期を作る可能性もある。

ページの非同期はなりません作る

http://msdn.microsoft.com/en-us/magazine/cc163725.aspx

サービスコールは並行して発生しますが、これはおそらく必要なものです。このためには、各コントロール内で非同期呼び出しが必要です。

なんらかの用途が期待されます。

+0

興味深いことに、ユーザーコントロールコンテキストからのRegisterAsyncTaskの使用については説明していません。同じ規則が適用されますか? また、この記事は2005年のものです。TPLライブラリは類似しているがよりクリーンな実装を提供していませんか? –

+0

TPLは、スレッドプールと非同期呼び出しの周りに有用なラッパーを提供することは間違いありません。非同期ページとTPLターゲットのどちらも問題がないということは、ページイベントが逐次発生し、initまたはpage loadのすべてのコントロールのデータをバインドし、バインドが完了するまでレンダリングを進めないことです。私はコントロールの外でwebservice呼び出しを行い、タスクを使用して呼び出し、すべてが完了するのを待ってから、すべてのデータがロードされたときにバインドします。これはあなたの既存の仕事に大きく影響するかもしれません。 – faester

関連する問題