页面加载后,我已经通过rest-angular请求获取了两个数组。后来我使用了一个角度模块-ivh树视图来显示它们。两个数组相差10 ^ 3个元素。
问题:通过下拉菜单在它们之间进行切换需要花费大量的时间。我如何减少它?
最佳答案
我相信任何解决方案都需要修改ivh-treeview
使其自身更有效率。
快速浏览ivh-treeview
的源代码,看起来它总是呈现整个树并在节点展开和折叠时切换可见性。
如果您修改指令以最初仅渲染已扩展的节点并按需渲染,那么它应该会大大提高性能,因为您只会渲染实际需要的内容。
另请注意,ivh-treeview
具有大量嵌套的中继器,而无需指定track by
(作为通用控件,它不一定)。如果更改要求为每个树节点提供一个id字段,则可以将track by
添加到转发器中,这对性能有积极的影响(但要小于延迟加载)。
还要注意,作为嵌套中继器的大型递归结构,可以通过将数据转换为具有深度标识符的平面列表,然后将整个树作为具有css的单个列表来控制深度来改善性能。这失去了嵌套节点的语义优势,但可能会对性能产生积极影响。当您失去嵌套结构以及几乎自动扩展和折叠的好处时,它还会使树的许多部分变得复杂。