我想生成一个可视化,其中包含大量具有d3强制布局的节点(超过500个节点)。虽然它可以正常运行多达200个节点,但是在大约500个节点上变得非常慢,从某种意义上说,布局会从一个帧到另一个帧发生故障,而节点上的鼠标悬停等事件远没有响应。这让我问了几个问题。
节点数量是否存在某种限制,之后不建议使用强制布局?如果是的话,还有其他可以处理这项工作的图书馆吗?
如果我想用d3加速这个过程,应该优化哪些部分?我试着保持使用最小的css / attributes标记(只给节点的半径和填充颜色+链接的笔画宽度和笔画颜色)并减少交互的使用(鼠标悬停事件)但是可以进行更多的优化持有所有信息的力量对象?数据的大小必须起到一定的作用......
感谢您的投入!
答案 0 :(得分:2)
这样做的一种方法是处理不是每个tick
事件,而只处理其中的一小部分,例如跳过指定的数字或根据其他考虑动态调整事件的数量。
如果想要平滑移动,请在处理的tick
事件中设置的位置之间添加转换。您当然也可以结合这些想法,并在转换运行时跳过事件,在完成转换后处理第一个。