2010-11-30 75 views
11

如果HTML足够复杂,则布局和呈现HTML内容可能需要一些时间。我无法找到关于如何编写HTML以帮助布局引擎(特别是在IE中)以便页面重绘速度更快的最佳实践。这样的一套最佳实践是否存在?如何在IE中快速呈现HTML代码

我目前的具体问题是,我的表格数据(在一个表元素),导致绘制页面太慢,并使DOM更新(悬停效果)和动画非常缓慢。我相信这不是JavaScript的性能。我使用dynaTrace AJAX检查了页面。当我将鼠标悬停在元素上时,CPU变得太忙,但没有JS运行。悬停是通过向TR元素添加/删除类来实现的。我也尝试过Firefox中的YSlow,它没有显示任何特定的问题。它也不是网络相关的。 (Firefox的页面布局速度更快,但这不是因为它的JS引擎速度更快)

是否有一种工具可以在IE中剖析绘图和布局,以便我可以找出问题来自哪里?什么会导致绘图如此之慢,以至于我可以在HTML代码中避免它们?

+3

加速渲染的最佳方式是编写更少的代码。 – 2010-11-30 12:06:06

+0

您没有使用CSS表达式,是吗?那些JS-in-CSS并倾向于消耗所有可用的CPU功率。 – Piskvor 2010-11-30 12:07:39

回答

17

Internet Explorer在渲染大型HTML表格时速度慢。

请参阅本不错的文章在MSDN上:Building High Performance HTML Pages,具体到有关表的部分:

  • 设置表格的布局CSS属性固定在桌子上。
  • 为每列明确定义col对象。
  • 在每个col上设置WIDTH属性。

然后还有对ieblog一个不错的博客帖子大约表渲染:Table Rendering

归结为这一点:尽量让表格中的内容不那么复杂,即设置固定宽度,并且没有太多的动态渲染操作正在进行。 IE首先加载内容,然后必须计算内容的正确宽度==慢。