【问题标题】:big table makes internet explorer 8 freeze大桌子让 Internet Explorer 8 冻结
【发布时间】:2013-08-14 00:43:20
【问题描述】:

我有一个简单的 ASP.NET MVC3 索引页面,其中包含超过 11k 项。我有额外的操作链接按钮。代码如下:

<table class="list">
<tr>
    <th></th>
    <th>
        Name
    </th>
    <th>
        Code
    </th>
    <th>
        Explanation
    </th>
</tr>

@foreach (var item in Model) {
<tr>
    <td>
        <a href="@Url.Action("Edit", new { id = item.ID })" class="noUL">
            <img class="opr" src="@Url.Content("~/Content/Images/edit.png")" alt="Edit" title="Edit" />
        </a>
        <a href="@Url.Action("Details", new { id = item.ID })" class="noUL">
            <img class="opr" src="@Url.Content("~/Content/Images/info.png")" alt="Details" title="Details"/>
        </a>
        <a href="@Url.Action("Delete", new { id = item.ID })" class="noUL">
            <img class="opr" src="@Url.Content("~/Content/Images/delete.png")" alt="Delete" title="Delete"/>
        </a>
    </td>
    <td width="600px">
        @Html.DisplayFor(modelItem => item.Name)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.Code)
    </td>
    <td>
        @Html.DisplayFor(modelItem => item.Explanation)
    </td>
</tr>
}

使用任何其他浏览器(包括 Chrome 和 Firefox)打开它都没有问题,但在 IE8 中它首先尝试运行,然后永久锁定。我不期望 IE 有好的表现,但我怎样才能让它发挥作用呢?非常感谢您节省时间的小技巧。例如,我尝试为不同大小的列赋予静态宽度。

更新:我删除了图片链接的列,它起作用了;使用表格甚至更快,而不是我之前尝试过的 div-ul-li 设置。

【问题讨论】:

  • 哎呀——如果我尝试在此上近似有效负载(尝试在此处保守/低),使用您的标记删除空格等(但缺少实际数据值)我得到 700bytes * 11K rows == 7.7MB 哇...在 Chrome 中传输和渲染需要多长时间?
  • 我的错。接近 10 秒。
  • 总长镜头:看看这个stackoverflow.com/questions/6923063/… - 特别是关于IE7 / 8的最后一次对话以及TABLES与DIV,SPANS,UL等中的多排相同目的。根据您的标记,您似乎可以相当快地尝试一下。
  • 尝试了 div-ul-li 设置而不是 table-tr-td,但没有运气。顺便说一句,这是个好主意,谢谢。
  • 好吧,至少你知道 IE 一直很糟糕!

标签: asp.net-mvc-3 internet-explorer-8


【解决方案1】:

如果您有批量数据,我建议您覆盖表上的分页。使用JSON 将您的数据部分发送到表格。在每个 nextprev 按钮中单击将新列表发送到表格。

【讨论】:

  • Iyi kodlamalar, Ismet bey
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-13
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多