我使用HttpHandler在ASP.Net Web應用程序中動態地提供圖像。 我有一個性能問題(Firfox /螢火蟲/ YSlow的報道有太多HTTPRequests的)ASP.Net - 多個動態圖像。由於太多的Http請求導致的性能問題
我有每頁50-100圖像在某些情況下。3個樹視圖(企業單位/分類/對象),每間具有其自身的圖像節點;)
每個項目的圖像的URL被動態地設置像這樣...
SomeImage.ImageUrl = 「/image.axd?ImageId={0}」;
注:我只知道在運行時需要哪些圖像。
附加:圖像所在的服務器文件系統上,在一個資源文件,並在數據庫中 - 用戶可以上傳自己的圖片與我的系統對象相關聯和ImageHandler將動態地確定每個圖像位置)
在web.config的HttpHandler的構造和如預期工作... 添加動詞=「GET」路徑=「image.axd」類型=「Vision.OnsightManager.ImageHandler」
在HttpHandler的原始圖像響應每個圖像請求返回字節。 因此,在圖像處理程序的WriteResponse()方法中返回圖像字節,就像這樣...
context.Response.BinaryWrite(bytes);
所有圖像正常顯示,但應用程序有性能問題,如預期,其中顯示許多圖像...
問:
你推薦什麼辦法,除了減少圖像數),用於最小化爲每個圖像生成的所有HttpRequests?也許組合成一個Http請求?
我已經閱讀了關於將多個css請求合併爲一個請求,使用圖像映射(帶有偏移量的單個合併圖像)等的文章,但沒有一篇似乎適合我的特定場景?
非常感謝!
我建議雙方[磁盤緩存(http://imageresizing.net)和發送客戶端緩存標題,以便重複請求不必擊中服務器。這聽起來像是一個商業應用程序,大多數用戶多次訪問它,緩存可能會修復請求數。 – 2012-01-09 21:25:54