如何并行d3.js或cubism.js

How to parallelize d3.js or cubism.js

本文关键字:js d3 cubism 并行 何并行      更新时间:2023-09-26

下面是http://adambom.github.io/parallel.js/

示例:

var p = new Parallel([0, 1, 2, 3, 4, 5, 6]), 
        log = function () { console.log(arguments); };
function fib(n) {
  return n < 2 ? 1 : fib(n - 1) + fib(n - 2);
};
p.map(fib).then(log)

效果很好,现在我想把同样的概念应用到d3对象上。

我有一个for循环,它循环通过名称列表:

for name in names by 1
  // set some stuff
  context = [....]
  metrics = [....]
  d3.select("#"+name)
    .selectAll(".horizon")
    .data(metrics).enter()
    .insert("div", ".bottom")
    .attr("class", "horizon")
    .call context.horizon()

如果我把for循环的内容放在函数fib内容中,它会抱怨"未定义的d3变量"。。。但我觉得我错过了这个概念。

您无法并行化链。这里d3没有什么特别之处——当您链式调用时,即foo(a).bar(b).foobar(c),这意味着foo()使用方法bar()返回对象,而方法foobar()又返回对象。这本质上意味着您不能并行运行foo()bar(),因为后者需要前者的结果。

我无法并行d3。请选择

但我只能并行化构建数组度量的部分,但几乎什么都没做——少1秒?

如果我发现任何

,我将发布我的解决方案