4

我想生成一个包含大量具有 d3 强制布局的节点(超过 50000 个节点)的可视化。虽然它可以在多达 20000 个节点上正常工作,但它在大约 500 个节点时会变得非常慢,因为从一帧到下一帧的布局打嗝以及节点上的鼠标悬停等事件远没有响应。这让我问了几个问题。

  • 不建议使用强制布局的节点数量是否有某种限制?如果是这样,是否有任何其他图书馆可以处理这项工作?

  • 如果我想用 d3 加快进程,应该优化哪些部分?我尝试尽量减少 css/属性标记的使用(只是为节点提供半径和填充颜色 + 为链接提供笔划宽度和笔划颜色)并减少交互(鼠标悬停事件)的使用,但是否可以进行更多优化到包含所有信息的力对象?数据的大小必须起到一定的作用...

谢谢您的意见 !

4

1 回答 1

2

这样做的一种方法是不处理每个tick事件,而只处理其中的一部分,例如跳过指定的数量或根据其他考虑动态调整事件的数量。

tick如果您想要平滑移动,请在已处理事件中设置的位置之间添加过渡。当然,您也可以结合这些想法并在过渡运行时跳过事件,在完成后处理第一个事件。

于 2015-03-13T14:04:15.737 回答