什么时候在DOM环境中发生再流?什么类型的活动会触发Web页面的DOM再流?似乎有不同的观点。根据http:/www.nczonline.net/blog/2009/02/03/速度-您的javascript-第4部分/,发生了添加或删除DOM节点时。当您动态地应用样式时(例如元素、样式、宽度=“10 px”)。当您检索必须计算的度量时,例如访问偏移宽度、clientHight或任何计算出来的CSS值(通过兼容DOM的浏览器中的getComputedStyle或IE中的CurentStyle)。然而,根据http:/dev.opera.com/ports/view/Efficient-javascript/?page=3,只有在已排队的再流操作时,才采取测量触发器的再流。还有人有什么想法吗?
3 回答
拉莫斯之舞
TA贡献1820条经验 获得超10个赞
当你 检索必须计算的度量值。,例如访问 偏移宽度, 客户高度,或任何计算出来的CSS值(通过 getComputedStyle()在兼容DOM的浏览器或IE中的CurentStyle中,而DOM更改则排队等待进行。
如前所述,浏览器可能会为您缓存几个更改,并且在所有这些更改都已完成时,只会再流一次。但是,请注意 测量这个元素会迫使它重新流动。,以便测量结果是正确的。这些变化可能被或可能不会被明显地重新描绘,但回流本身仍然必须发生在幕后。
此效果是在使用以下属性进行测量时创建的 偏移宽度,或者使用类似的方法 getComputedStyle..即使没有使用这些数字,只要在浏览器仍在缓存更改时使用这些数字,就足以触发隐藏的再流。如果这些测量是反复进行的,您应该考虑只进行一次测量,并存储结果,然后可以在以后使用。
万千封印
TA贡献1891条经验 获得超3个赞
function askforHeight () { $("#lower").height(); }
添加回答
举报
0/150
提交
取消