操作canvas 会不会导致页面reflow?

如题,一个固定大小、位置的canvas,对其频繁的绘制,会不会触发页面的reflow?

阅读 4.3k
3 个回答

只会重绘,不会回流

谢邀!
首先肯定不会引起页面回流。至于页面重绘,个人感觉canvas也不会引起,理由重绘和回流都是相对于render tree上的元素而言的,而canvas并未对元素做任何更改,只会引起canvas画布的重绘(关于页面重绘理由有待调研)。

当render tree中的一部分因为元素的规模尺寸,布局,隐藏等改变而需要重新构建。这就称为回流(reflow)。每个页面至少需要一次
回流,就是在页面在第一次加载的时候。在回流的时候,浏览器会使渲染树中受到影响的部分失效,并重现构建这部分渲染树,完成回流后,浏览
器会重新绘制受影响部分到屏幕中,称为重绘。
当render tree中的一些元素需要更新属性,而这些属性只是影响元素的外观,风格,而不会影响布局的,比如background-color。则就叫
称为重绘。
回流必将引起重绘,而重绘不一定引起回流。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题