我最近不得不处理非常大的数据源,并且想知道是否有一种方法可以提高GoJS的性能。
GoJS非常有效地处理了我的数据,在站点完全加载后不久,将显示我尝试创建的TreeView
。不幸的是,平移视图时,该图以某种方式开始滞后。
我现在正在寻找一种将延迟最小化的方法。
我尝试摆弄Layout选项,但是并没有导致明显的性能提升。
对于该图,我有一个“相对”有几个节点的图(准确地说是498个),但是不幸的是我的模板相当复杂。它具有一个嵌套的itemArray,可在该行内生成行和列。另一件事是,我使用了“ LayeredTreeView”模型的稍微修改的版本。
这些节点位于388个不可见的组中。在不使用布局的情况下生成交叉减少之类的东西只需要花费相当长的时间。
我也刚刚发现了GoJS简介的performance网站。在那里已经提到过,复杂的模板会使GoJS变慢。可能是这种情况吗?
最佳答案
复杂的模板要比简单的模板花费更长的时间,因此,当节点复杂而详细时,加载时间将花费更长的时间。
但是,一旦在图中创建并初始化了所有节点和链接,滚动(也就是平移)应该很快。
虚拟化减少了加载时间,因为最初应该创建和显示的节点和链接应该很少。但是,虚拟化确实会减慢滚动和缩放速度,因为必须在视口更改时创建节点和链接。正如该“性能”页面所建议的那样,实施虚拟化需要更多的编程工作。根据情况的不同,它甚至可能不可行或更快。