如何在网页中重复使用相同的下载图像,而不是重新下载图像?

时间:2011-12-08 19:21:41

标签: html asp.net-mvc-3

我的MVC3应用程序中有一个View,根据以下特定标准显示两个非常小的图像之一:

@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中的项目数。随着越来越多的项目添加到数据库,它会逐渐变慢。

有没有办法缓存图像,以便客户端每次拨打电话时都不会下载图像?

OR 如果我使用CSS来显示图像会更快吗?

OR 我是否完全误解了客户?它会自动执行此操作吗?

2 个答案:

答案 0 :(得分:1)

客户端将自动缓存图像;每张图片只会下载一次。因此,您不必担心这一部分。您可能需要到其他地方寻找任何性能问题的根源。 (例如,首先要弄清楚服务器与客户端之间是否发生了延迟。)

答案 1 :(得分:1)

图像由浏览器自动缓存。页面大小增加,因为它包含更多HTML代码。

我看不出尺寸如何以指数方式增长。它应该与项目数呈线性增长。