javascript更新类时使用requestanimationframe有用吗?

时间:2018-11-09 17:59:49

标签: javascript css requestanimationframe

上下文

我了解到,要保持UI的流畅性,而不是:

dosomething()

我可以使用:

document.querySelector('#div').style.width = '100px';

问题

为类更改做同样的事情有用吗?我的意思是这样:

requestAnimationFrame(function() {
  document.querySelector('#div').style.width = '100px';
});

对保持良好的UI流动性有用吗?

注意

我还从Jake的有关Javascript事件循环的视频中了解到,CSS被应用到与Javascript不同的 thread 上,因此我的问题是,因为Javascript发送类更改,它被算作JS事件循环还是CSS事件循环的一部分?

1 个答案:

答案 0 :(得分:0)

我会说除非您知道为什么要这么做,否则您不应该这样做。

您的RAF引入的“流动性”实际上是由于将更改从“立即执行”更改为“在下一次绘制时执行”。

Chart of redraws, credit dev.opera.com

Image credit, as well as a good resource for learning more.