7

我想知道 DOM 节点属性在样式信息方面是否是同步的?我正在阅读以下文章,并且阅读了以下行

要求样式信息的脚本,例如“offsetHeight”可以同步触发增量布局。

从文章中,似乎表明有一个“脏节点”系统会暂停脚本执行,直到文档完全布局。所以,如果我有一个脏节点n,如果从javascript调用n.offsetHeight,文章建议n.offsetHeight在偏移高度完全具体化之前不会返回。我对此的理解正确吗?我可以依靠浏览器始终为我提供任何附加 DOM 元素的当前稳定版本吗?

简而言之,如果我修改节点上的某些样式(使用样式属性、类名、动态 css 等),然后读取一些依赖于所述样式的属性,我是否可以始终确定我得到的值将是应用了我以前的样式的节点的值吗?如果不是这种情况,我怎么知道我的样式更改何时应用?

4

1 回答 1

4

当您从 DOM 元素中读取信息时,您将始终获得当前值,而依赖于其他属性或其他元素的属性在您读取它们时将始终正确计算。

当您更改 DOM 以更改布局时,在您进行更改时不会直接重新计算所有元素。如果您更改需要再次重新计算的更多内容,那将是一种浪费。只要不需要重新计算,布局就会保持未计算状态。如果您读取依赖于该重新计算的属性,它将在返回值之前完成。

因此,通过规划如何设置和读取属性,可以避免不必要的重新计算。

于 2013-02-06T22:33:51.040 回答