我的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 我是否完全误解了客户?它会自动执行此操作吗?
答案 0 :(得分:1)
客户端将自动缓存图像;每张图片只会下载一次。因此,您不必担心这一部分。您可能需要到其他地方寻找任何性能问题的根源。 (例如,首先要弄清楚服务器与客户端之间是否发生了延迟。)
答案 1 :(得分:1)
图像由浏览器自动缓存。页面大小增加,因为它包含更多HTML代码。
我看不出尺寸如何以指数方式增长。它应该与项目数呈线性增长。