如果HTML足够复杂,HTML内容的布局和呈现可能需要一些时间。我无法找到有关如何编写HTML的最佳实践,以帮助布局引擎(特别是在IE中),以便页面重绘更快。是否存在这样一套最佳实践?
我当前的具体问题是我的表格数据(在表格元素中)导致绘制页面太慢,并且使DOM更新(悬停效果)和动画非常缓慢。我确定这不是JavaScript性能。我使用dynaTrace AJAX检查了页面。当我将鼠标悬停在元素上时,CPU变得太忙,但是没有JS运行。并且通过向TR元素添加/移除类来实现悬停。我也在Firefox中尝试过YSlow,它没有显示任何特定问题。它也不是网络相关的。 (Firefox更快地布局页面,但这不是因为它的JS引擎更快)
是否有工具在IE中剖析绘图和布局,以便我可以找出问题的来源?什么可能导致绘图如此缓慢,以便我可以在HTML代码中避免它们?
答案 0 :(得分:17)
众所周知,Internet Explorer在渲染大型HTML表时速度很慢。
请参阅MSDN上的这篇好文章:Building High Performance HTML Pages,特别是有关表格的部分:
- 将表格布局CSS属性设置为固定在表格上。
- 明确定义每列的col对象。
- 在每个列上设置WIDTH属性。
然后在ieblog上还有一篇关于表格渲染的好文章:Table Rendering。
归结为:尝试使表格中的内容不那么复杂,即设置固定宽度并且不会进行太多的动态渲染操作。 IE首先加载内容然后必须计算内容的正确宽度==慢。