HttpHandler を使用して、ASP.Net Web アプリケーションで画像を動的に提供します。パフォーマンスの問題があります (Firfox/Firebug/YSlow が HttpRequest が多すぎると報告しています)。
場合によっては、ページごとに 50 ~ 100 枚の画像があります。各ノードに独自の画像がある 3 つのツリービュー (ビジネス ユニット/カテゴリ/オブジェクト) ;)
各アイテムの画像 URL は次のように動的に設定されます...
SomeImage.ImageUrl = "/image.axd?ImageId={0}";
注: どのイメージが必要になるかは、実行時にしかわかりません。
追加: 画像はサーバー ファイル システム、リソース ファイル、およびデータベースにあります。ユーザーは独自の画像をアップロードしてシステム オブジェクトに関連付けることができ、ImageHandler は各画像の場所を動的に決定します)。
web.config では、httphandler が構成され、期待どおりに動作します... add verb="GET" path="image.axd" type="Vision.OnsightManager.ImageHandler"
HttpHandler では、各画像要求に応答して生の画像バイトが返されます。そのため、イメージ ハンドラの WriteResponse() メソッドでは、イメージ バイトが返されます。
context.Response.BinaryWrite(バイト);
すべての画像は正しく表示されますが、多くの画像が表示される場合、予想どおりアプリのパフォーマンスに問題があります...
質問:
各画像に対して生成されるすべての HttpRequests を最小限に抑えるために、画像数を減らすこと以外に、どのようなアプローチをお勧めしますか?) たぶん、単一の Http リクエストに結合しますか?
イメージ マッピング (オフセットを使用した単一結合イメージ) などを使用して、複数の CSS 要求を 1 つの要求に結合することに関する記事を読みましたが、特定のシナリオに適したものはないようです。
とても感謝しております!