私は何百もの製品カタログをJPEGファイル(ファイルサイズ40kb〜150kb)で表示するWebサイトを持っています。私は自分のウェブサイトが何百ものHTTPリクエストを生成することを実感しますasp.net MVCで数百の画像を最適化するにはどうすればよいですか?ASP.NET MVC HTTPリクエストを減らすために何百もの画像を最適化する方法
1
A
答えて
1
イメージを、URLを使用するのではなく、Base64でエンコードしてページに埋め込みます。これにより、Webブラウザが必要とするHTTPリクエストの数を減らすことができます。
ページを圧縮します。
UPDATE:ここではあなたが
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;
}
}
Asp.Net MVCでのBase64にImageオブジェクトを変換する方法であり、あなたがそうのようにそれを使用します。
<img src="data:image/jpeg;base64,' + yourImageBase64string + '" />
キープこのことを念頭において、おそらくあなたのページを圧縮することなく、あなたのページの読み込みをずっと速くすることはできません。なぜあなたはこれらの画像のサブセットを表示し、ユーザーがそれらの画像の間をナビゲートすることができないのですか?
Bojin Li、ASP.NET MVC 3でベース64エンコードのイメージを変換するにはどうすればいいですか?私の製品カタログ約200数百のイメージと顧客/ユーザーはいつでもそれを変更することができます –
私のウェブサイトはwww.amazon.comまたはwww.sell.comのような私のウェブサイトは、最初のページにすべての最新の製品を表示する必要があります。最初のページをどのように速くチューニングできますか? –
私はあなたがいくつかの画像でページを提供し、jQueryを使用して、追加の画像のためにサーバーにajax呼び出しを行うことができると思います。このようにして、ページはかなり高速にロードされ、後で追加イメージが表示されます。私はアマゾンがこの効果に似た何かをすると思います。 –