【发布时间】:2011-03-10 06:12:01
【问题描述】:
我继承了一个为大量项目列表生成 html 的应用程序。大约有 2500 个项目按类别分组,因此创建了一个 2500+ 行的巨型表。这是为单行渲染的代码:
<tr id='ev_2075_321' class='datagridRow1'>
<td align='left'>
<div style='margin-left: 20px;'>
<table cellspacing='0' cellpadding='0' style=
'cursor: pointer; width: 100%;'>
<tr>
<td style='width: 10px;'>
<img src='images/RewardsGreen.gif'>
</td>
<td valign='middle' align='left' style='cursor: default;'
ondblclick='doNothing;' onclick=
'listOnClick(5,"WHI.E_2075");'
onmouseover=
'highlightListItem("ev_2075_321", true); showInfoBubble(5,"WHI.E_2075","ev_2075_321","ev_cond_eventsContainer");'
onmouseout=
'highlightListItem("ev_2075_321", false, 1); hideInfoBubble();'>
<span style='margin-left: 3px;'>Card Registration</span>
</td>
</tr>
</table>
</div>
</td>
</tr>
您认为如果我将其减少为带有背景图像的单个列表项,渲染时间会改善吗?目前它只是在 Firefox 和 IE 中崩溃。我注释掉了事件处理程序,只看到了大约 30% 的加速,我正在考虑使它们基于类,并通过 jQuery 选择器绑定处理程序。还有其他方法可以加快速度吗?还是你认为我需要一些分页。
【问题讨论】:
-
是分页还是对列表的其余部分进行某种动态获取,以使初始加载看起来更快?也可以考虑使用 jQuery 客户端模板来生成所有这些 HTML 客户端(尽管我无法想象使用 JS 生成这么多 HTML 会比直接渲染它更快)。
标签: javascript html optimization