1
我有一個網站,其中顯示數百個產品目錄與JPEG文件(文件大小40kb - 150kb)。我意識到我的網站會產生數百個http請求。你有什麼想法如何優化asp.net MVC中的數百個圖像?ASP.NET MVC如何優化數百個圖像以減少http請求
我有一個網站,其中顯示數百個產品目錄與JPEG文件(文件大小40kb - 150kb)。我意識到我的網站會產生數百個http請求。你有什麼想法如何優化asp.net MVC中的數百個圖像?ASP.NET MVC如何優化數百個圖像以減少http請求
將圖像嵌入到Base64編碼的頁面中,而不是使用它們的URL。這將減少網頁瀏覽器所需的http請求數量。
壓縮你的頁面。
更新:這裏是你如何轉換圖片對象爲Base64在Asp.Net MVC
private string ImageToBase64(Image image,
ImageFormat format)
{
using (var ms = new MemoryStream())
{
// Convert Image to byte[]
image.Save(ms, format);
byte[] imageBytes = ms.ToArray();
// Convert byte[] to Base64 String
string base64String = Convert.ToBase64String(imageBytes);
return base64String;
}
}
private Image Base64ToImage(string base64String)
{
// Convert Base64 String to byte[]
byte[] imageBytes = Convert.FromBase64String(base64String);
using (var ms = new MemoryStream(imageBytes, 0,
imageBytes.Length))
{
// Convert byte[] to Image
ms.Write(imageBytes, 0, imageBytes.Length);
Image image = Image.FromStream(ms, true);
return image;
}
}
你使用它,像這樣:
<img src="data:image/jpeg;base64,' + yourImageBase64string + '" />
保持考慮到這樣做可能不會使你的頁面加載速度更快,而不會壓縮你的頁面。爲什麼你不能只顯示這些圖像的一個子集,讓用戶在它們之間導航?
Bojin Li,你可以與我分享我如何將圖像轉換爲ASP.NET MVC 3中的Base 64編碼?我的產品目錄幾乎有200個圖像,客戶/用戶可以隨時更改 – 2012-02-11 05:38:09
Bojin Li,mmmmh我的網站就像www.amazon.com或www.sell.com我需要在第一頁顯示所有最新產品。你有什麼想法如何調整第一頁更快? – 2012-02-11 05:57:25
我想你可以用幾張圖片來爲頁面提供服務,然後使用jQuery併爲你的服務器調用ajax調用附加的圖片。通過這種方式,頁面加載的速度非常快,而且其他圖像會在一段時間後出現。我認爲亞馬遜會做出類似於這種效果的事情。 – 2012-02-11 06:03:42