5

我正在将我的应用程序转换为使用 XHTML 严格模式(之前它没有 DOCTYPE)。但是,我注意到在获取 offsetHeight/offsetWidth 时显着下降。这在具有大量 DOM 元素的页面上非常明显,比如说一个 1 列乘 800 行的表格,单元格只有一段文本。访问该表中的每个后代元素以获取它们的偏移尺寸比 IE 在 Quirks 模式下呈现页面时要慢得多。为什么会这样?有人知道帮助 IE 计算这些 offsetValues 的技巧吗?

4

2 回答 2

2

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

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

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

于 2010-08-23T04:22:00.823 回答
1

@bobince:我认为问题与回流有关。我的 JavaScript 中的逻辑试图确定子级是否在绝对布局容器中相互重叠(因为它们获得了我无法预测的动态内容),然后调整父级的 css 尺寸和需要向下移动的兄弟的 css。更改 css 尺寸会触发重排,这发生在我的迭代中间,这种情况在 IE8 标准中似乎比在 IE8 Quirks 中对于非常大的表要慢得多。我知道在执行此类操作时我应该隐藏或使用 documentFragment,但是因为我需要移动东西然后查看新的偏移尺寸,所以我得到了不准确的值。

于 2010-08-28T02:11:17.653 回答