Как повторно использовать загруженное изображение на веб-странице вместо повторной загрузки изображения? - PullRequest
1 голос
/ 08 декабря 2011

У меня есть приложение View в моем приложении MVC3, которое отображает одно из двух довольно маленьких изображений на основе определенных критериев следующим образом:

@foreach (var item in Model)
{
<td>
        @if (item.TARGETs.Count == 0)
        {
            @Html.ActionImageLink("../../Content/themes/base/images/add.png", "Create Target", "Create", "Target", new { id = item.OBJECT_ID }, null, new { title = "Define Object as Target" })
        }
        else
        {
            @Html.ActionImageLink("../../Content/themes/base/images/ok.png", "View Target", "Details", "Target", new { id = item.OBJECT_ID }, null, new { title = "View Target Details" })
        }
    </td>
    <td>
        @if (item.SOURCEs.Count == 0)
        {
                @Html.ActionImageLink("../../Content/themes/base/images/add.png", "Create Source", "Create", "Source", new { id = item.OBJECT_ID }, null, new { title = "Define Object as Source" })
        }
        else
        {
                @Html.ActionImageLink("../../Content/themes/base/images/ok.png", "View Source", "Details", "Source", new { id = item.OBJECT_ID }, null, new { title = "View Source Details" })
        }
    </td>

Каждое изображение является относительно небольшим (около 800 байт).Тем не менее, размер страницы, кажется, растет в геометрической прогрессии в зависимости от количества элементов в IEnumerable.Он становится все медленнее, так как все больше и больше элементов добавляются в БД.

Есть ли способ кэширования изображения, чтобы клиент не загружал изображение каждый раз, когда я совершаю вызов?

ИЛИ Если я использовал CSS для отображенияизображение будет быстрее?

ИЛИ Я неправильно понимаю клиента?Делает ли это это автоматически?

Ответы [ 2 ]

1 голос
/ 08 декабря 2011

Изображения автоматически кэшируются браузером.Размер страницы увеличивается, потому что она содержит больше HTML-кода.

Я не вижу, как размер может расти в геометрической прогрессии.Оно должно расти линейно с количеством предметов.

1 голос
/ 08 декабря 2011

Клиент автоматически кеширует изображение; каждое изображение будет загружено только один раз. Следовательно, вам не нужно беспокоиться об этом куске. Возможно, вам придется искать в другом месте, чтобы найти источник каких-либо проблем с производительностью. (Например, начните с выяснения, происходит ли задержка на сервере по сравнению с клиентом.)

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