IE 8 Quirks vs Standards检索offsetHeight / offsetWidth

时间:2010-08-21 01:29:18

标签: javascript internet-explorer html-parsing offsetwidth

我正在将我的应用程序转换为使用XHTML严格模式(之前没有DOCTYPE)。但是,我注意到在获取offsetHeight / offsetWidth时出现了明显的降级。这在具有大量DOM元素的页面上非常明显,假设一个表有1列800行,单元格只有一段文本。访问该表中的每个后代元素以获取其偏移维度比IE在Quirks模式下呈现页面时要慢。 为什么会这样?并且有没有人知道帮助IE计算那些offsetValues的提示?

2 个答案:

答案 0 :(得分:2)

我建议强制IE在标准模式下渲染页面而不是怪癖。 这可以通过在html文档的头部添加元标记或设置Web服务器来添加X-UA兼容标题来完成。

<meta http-equiv="X-UA-Compatible" content="IE=8;FF=3;OtherUA=4" />

此外,使用内置的javascript框架,如jquery,prototype,yui等,其中大多数已经解决了不同渲染引擎上的问题。

答案 1 :(得分:1)

@bobince:我相信这个问题是围绕着重绕。我的JavaScript中的逻辑试图弄清楚子项是否在绝对布局容器中相互重叠(因为它们得到我无法预测的动态内容),然后调整父级的css维度和需要向下移动的sibbling的css。更改css维度会触发重排,这发生在我的迭代过程中,IE8标准中的这种情况似乎比非常大的表中的IE8 Quirks慢得多。我知道在进行这种类型的操作时我应该隐藏或使用documentFragment,但是因为我需要移动东西然后查看新的偏移尺寸我得到的值不准确。