2012-02-11 54 views

回答

1
  1. 將圖像嵌入到Base64編碼的頁面中,而不是使用它們的URL。這將減少網頁瀏覽器所需的http請求數量。

    http://lucdebrouwer.nl/how-to-base64-encode-your-images/

  2. 壓縮你的頁面。

    http://developer.yahoo.com/performance/rules.html

更新:這裏是你如何轉換圖片對象爲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 + '" /> 

保持考慮到這樣做可能不會使你的頁面加載速度更快,而不會壓縮你的頁面。爲什麼你不能只顯示這些圖像的一個子集,讓用戶在它們之間導航?

+0

Bojin Li,你可以與我分享我如何將圖像轉換爲ASP.NET MVC 3中的Base 64編碼?我的產品目錄幾乎有200個圖像,客戶/用戶可以隨時更改 – 2012-02-11 05:38:09

+0

Bojin Li,mmmmh我的網站就像www.amazon.com或www.sell.com我需要在第一頁顯示所有最新產品。你有什麼想法如何調整第一頁更快? – 2012-02-11 05:57:25

+0

我想你可以用幾張圖片來爲頁面提供服務,然後使用jQuery併爲你的服務器調用ajax調用附加的圖片。通過這種方式,頁面加載的速度非常快,而且其他圖像會在一段時間後出現。我認爲亞馬遜會做出類似於這種效果的事情。 – 2012-02-11 06:03:42