サードパーティのサーバー側コントロールを含む、多くの繰り返しブロックを含むASP.NET 2.0ページがあります(したがって、単なるHTMLではありません)。CPUとRAMの両方の観点から、それぞれの生成にはかなりの費用がかかります。私は現在、これに標準のリピーターコントロールを使用しています。
この単純なアプローチには2つの問題があります。
- ページ全体をレンダリングしてからクライアントに返す必要があるため、ユーザーはデータが表示されるまで長時間待つ必要があります。(私はを使用して進行状況メッセージを書く
Response.Write
ので、フィードバックはありますが、実際の結果はありません。) - ASP.NETワーカープロセスは、すべてを同時にメモリに保持する必要があります。これには固有のニーズはありません。1つのブロックが処理されると変更されないため、クライアントに返され、メモリが解放される可能性があります。
それぞれが生成されるので、どういうわけかこれらのブロックを一度に1つずつクライアントに返したいと思います。リピーター内のものを別のページに抽出し、AJAXを使用して繰り返し取得することを考えていますが、それにはいくつかの複雑な問題があり、より簡単なアプローチがあるのではないかと思います。理想的には、(クライアントの観点から)1ページとして保持したいのですが、段階的に返します。
別の方法は、同様のことをサーバー上で行うことです。それでも別のページを作成しますが、サーバーにアクセスさせてから、実際のクライアント要求Response.Write()
の応答ストリームにHTMLを取得します。ただし、ここでHTTPリクエストを回避する方法はありますか?UserControlまたはPageをHTTPリクエストの外部にレンダリングし、HTMLを文字列として返すだけのASP.NETメソッドはありますか?
これを行う方法についても、他のアイデアを受け入れています。