我目前正在实现一个web应用程序,它使用AngularJS、sigma.js和d3.js进行可视化。数据集将非常大(图上的200k节点除外)。我正在将所有sigma代码移植到服务器端,以便尽可能减少浏览器的压力。我让它为sigma图服务器端生成节点和边的对象。
我现在的问题是尝试让ForceAtlas2算法在node.js上工作。可以在服务器端渲染图形吗?或者至少让ForceAtlas2工作服务器端记录节点(x,y)的位置,这样它就不需要在ForceAtlas2客户端加载静态位置了?
发布于 2015-03-05 23:14:55
Sigma.js目前的ForceAtlas2还不能通过node.js/io.js在服务器端工作,因为它的很多代码都依赖于web workers。也许可以通过填充web workers来使其在服务器端工作,但是,如果我没记错的话,这还从来没有被尝试过。
这就是说,我真的希望将它移植到服务器端,当我们将sigma.js移植到像commonjs这样的更新的打包系统时,我可能会很快做到这一点。
所以,就目前而言,我会说你的选择如下:
<代码>F29
你可以在sigma.js的存储库上打开一个问题,这样我们可以一起解决这个问题吗?
发布于 2016-01-22 16:50:47
这是针对这种情况的另一种解决方案。
如果用户想要多次查看图表的数据集。当用户第一次访问时,我们可以将x,y坐标写入window.localStorage。在用户停止ForceAtlas2时或布局后几秒钟。
当这个用户进一步访问时,只需从localStorage获取坐标,我们就不需要再次执行ForceAtlas2。
可以从以下位置获得x,y和节点坐标
sigmaInst.graph.nodes()所以:
window.localStorage.setItem("cachedNodes", JSON.stringify(sigmaInst.graph.nodes()))https://stackoverflow.com/questions/28844080
复制相似问题