d3js大型有力graphics服务器端模拟

我正在创造一个有几千个节点的有力图。

正如你可能猜到的那样,交互式模拟很慢,浏览器也会被冻结,就像其他文章中提到的那样。

然而,对于我来说,静态的力图是不够的,我仍然需要用节点之间的力量来操作graphics,以获得很好的布局。 我不太在乎模拟的平滑性。 我的目标是:1.浏览器不会被冻结; 2.我可以用一个节点之间的力量将一个节点从一个地方拖到另一个地方。 而且,可视化节点位置的时间间隔可能会更长。

我正在考虑将node.js中的节点位置计算 很多关于在服务器端预渲染d3graphics的文章 ,但是我需要在服务器端进行所有的模拟计算,并与前端用户进行交互。 所以,我可能需要注册监听器来在node.js中“拖动”,“缩放”,“鼠标hover”动作。

我不确定是否有一个简单的方法来做到这一点。

如何尝试以下两种select之一:

  1. 在服务器上预渲染强制布局,在客户端,重新运行d3.layout.force()。 因为这些节点已经铺开,所以不会持续很长时间,也不会冻结浏览器。 那么你注册你需要的听众?

  2. 在服务器上,生成具有布局和事件绑定的graphics,并将其附加到DOM DocumentFragment 。 您将此结构传递给客户端的JavaScript,并将其附加到浏览器的DOM。