使用Web Worker和D3.js异步生成图形?

use*_*496 10 javascript svg web-worker d3.js

我目前正在处理一个问题,需要我的Web应用程序生成一个表示大约50k到60k点数据的图表.它加载相当快(约6秒),但我想知道是否可以使用D3.js在Web Worker中生成图形,然后将SVG传回加载到页面中.

Eri*_*röm 5

Web Workers没有DOM访问权限,所以你可以做的就是构建一些可以用来快速创建DOM的东西.工作人员可以例如处理数据集并执行所有繁重的计算,然后将结果作为一组数组传回.


aru*_*kjn 5

https://github.com/mbostock/d3/commit/43d38773623b52209d2667287a1ae626fb95b0d9

Jason Davies最近提交的内容。Mike Bostock说,将来,依赖DOM的代码将从d3.core中分离出来,这样您就可以制作一个可与Web-Workers API一起使用的自定义d3版本。

我有一个带有大量节点的力向图的相同问题。感觉很呆滞。我想以某种方式提高性能。我认为在节点服务器上使用phantomJS的最后一个线程是一个好主意,但是该方法涉及的网络延迟将破坏平滑的受力导向感觉。