Javascript 如何在屏幕上强制回流?
我们知道,一些计算样式和布局的操作将导致性能瓶颈。 但是浏览器是如何得到它的呢?见下文Javascript 如何在屏幕上强制回流?,javascript,performance,browser,Javascript,Performance,Browser,我们知道,一些计算样式和布局的操作将导致性能瓶颈。 但是浏览器是如何得到它的呢?见下文 /*a: display: block in css*/ a.style.display = 'none' console.log(a.offsetLeft); /*do something*/ offsetLeft的值将如预期的那样为0 但是,如果做某事花费太多时间 元素a将出现在屏幕上,直到完成某件事 为什么??以及如何在屏幕上强制回流(显示:无)。 谢谢在执行JS时,浏览器不会重新绘制。如果您知道“做
/*a: display: block in css*/
a.style.display = 'none'
console.log(a.offsetLeft);
/*do something*/
offsetLeft
的值将如预期的那样为0
但是,如果做某事花费太多时间
元素a
将出现在屏幕上,直到完成某件事
为什么??以及如何在屏幕上强制回流(显示:无
)。
谢谢在执行JS时,浏览器不会重新绘制。如果您知道“做点什么”代码花费的时间太长,您可以将其设置为“无”延迟的超时,以便当前函数将完成,浏览器将重新绘制,然后超时将运行。@nnnnnn但是如何回流
(offsetLeft->0)同步完成仅仅因为重新绘制尚未发生并不意味着浏览器不知道元素已通过display:none
从流中删除。这意味着回流发生在webkit中,但屏幕上的回流发生在gpu中?