DOM节点是否同步?

Ste*_*gle 6 html css dom styling

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

要求样式信息的脚本,如"offsetHeight",可以同步触发增量布局.

从文章中可以看出,有一个"脏节点"系统将暂停脚本执行,直到文档完全布局为止.所以,如果我有一个脏节点n,如果从javascript调用n.offsetHeight,文章建议n.offsetHeight将不会返回,直到完全确定了偏移高度.我对此的理解是否正确?我可以依赖浏览器总是给我任何附加DOM元素的当前稳定版本.

简洁地说,如果我在一个节点上修改一些样式(使用样式属性,类名,动态css,等等),然后读取一些取决于所述样式的属性,我能否始终确定我得到的值将会应用我之前的样式的节点的值?如果不是这种情况,我怎么知道我的样式更改何时应用?

Guf*_*ffa 4

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

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

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