ASP.NET MVC, как оптимизировать сотни изображений для уменьшения HTTP-запроса - PullRequest
1 голос
/ 11 февраля 2012

У меня есть веб-сайт, который отображает каталог сотен продуктов в формате JPEG (размер файла 40 КБ - 150 КБ).я понимаю, что мой сайт генерирует сотни http-запросов.У вас есть идеи, как оптимизировать сотни изображений в asp.net MVC?

1 Ответ

1 голос
/ 11 февраля 2012
  1. вставлять изображения на страницу в кодировке Base64, а не использовать их URL-адреса.Это уменьшит количество http-запросов, которые должен сделать веб-браузер.

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

  2. сжать вашу страницу.

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

ОБНОВЛЕНИЕ: вот как вы конвертируете объекты Image в 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 + '" />

Имейте это в видувероятно, не заставит вашу страницу загружаться намного быстрее без ее сжатия.Почему вы не можете отобразить только подмножество этих изображений и позволить пользователю перемещаться между ними?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...