我应该使用转换而不是重绘吗?

时间:2013-09-24 16:58:06

标签: javascript d3.js

每次使用d3画笔进行缩放/平移时,我都会重绘几张图表。

但是,当我有大量的渲染元素时,重绘开始有点慢。

我不是每次移动画笔时都重新绘制所有元素,而是想知道转换(翻译)已经绘制的元素是否可行,并且只在我需要更新数据时才重绘。

我认为无论何时向右/向左平移都会增加我的可视化性能,不会吗?

任何见解?

1 个答案:

答案 0 :(得分:1)

通常,您接触DOM越少,性能就越好。细节是浏览器和平台特定的,但一般来说这是性能的啄食顺序非常高(从最昂贵到最低):

  1. 创建和删除DOM元素。
  2. 修改现有DOM元素的属性。
  3. 在内存中JavaScript(即根本不涉及DOM ...例如,数组迭代)。
  4. 因此,如果您只需使用transform属性修改现有元素的目标子集就可以获得所需的结果,我猜您会好多了。

    当然,如果没有看到实际的代码和用例,就不可能肯定地说出任何内容。