我想在网页中向用户显示单向图。我目前正在使用JavaScript InfoVis Toolkit (JIT)作为可视化库。
问题是图表有许多节点和边缘,浏览器无法跟上所有节点和边缘的速度。以下是图表的截图:
我认为如果部分显示图表,问题就会解决。因此,当用户点击节点时,应该展开节点及其周围的节点(显示),并且应折叠(隐藏)某些远节点以防止出现性能问题。
基于这个想法,我编写了一个简单的代码,用于扩展节点,并在用户点击它并折叠前一个居中节点时将其置于中心位置。它不是一种非常有效和明智的方式来显示节点,无论如何它都不起作用。它只是折叠了所有节点,无法扩展当前单击的节点。
以下是代码:
onClick: function(node,eventInfo,e) {
if(node==false)
{
return;
}
if(rgraph.previousexpand!=false)
{
if(rgraph.previousexpand.id!=node.id)
{
rgraph.op.contract(rgraph.previousexpand, {
type: 'animate',
duration: 3000,
hideLabels: true,
transition: $jit.Trans.Quart.easeOut
});
}
}
rgraph.previousexpand = node;
rgraph.op.expand(rgraph.previousexpand, {
type: 'animate',
duration: 3000,
hideLabels: true,
transition: $jit.Trans.Quart.easeOut
});
rgraph.onClick(node.id);
}
在初始化中:
rgraph.previousexpand=false;
首先,你知道有什么更好的方式来展示一个非常大的图表吗? JIT中是否有其他解决方案或其他库以这种方式显示图形?
其次,我在代码中缺少什么?