在d3线生成器

时间:2017-09-12 20:44:30

标签: javascript performance d3.js

过去几天我一直在努力优化D3的性能。我在SVG上使用了一个行生成器,并且只想计算xy中使用的函数的一次。 例如:

d3.line().curve(d3.curveLinear) 
  .x(function(d){ return Math.sqrt(d) }
  .y(function(d){ return Math.sqrt(d) + 2) I

我想保存Math.sqrt(d)的结果,只计算一次。

有人有任何建议吗?

1 个答案:

答案 0 :(得分:0)

您可以将结果存储在第一个函数中,并在第二个函数中使用它

例如

d3.line().curve(d3.curveLinear) 
  .x(function(d){ 
     d.sqrt = Math.sqrt(d.value);
     return d.sqrt
   })
  .y(function(d){
     return d.sqrt + 2
   })