1

看起来下面函数的性能真的很糟糕。

treeView.append(children, parent);

这里的treeView是 Kendo UI Treeview,节点是子节点的容器节点,子节点大约 150 个新节点的数组(我的场景)。

而这段代码执行时间超过 7 秒。

我猜想附加功能对于项目集合没有很好的实现,所以也许有一些通过 jQuery 生成 html 的变通方法,但是 Kendo UI Treeview 也应该知道新节点以正确处理新节点的未来扩展事件。有什么办法可以提高上面代码的性能吗?

谢谢你,伊霍尔

4

2 回答 2

2

对于遇到此问题的人:

最终,我调查了 Kendo UI 源代码,而不是原始帖子中的行,我使用了以下代码:

 treeView.dataItem(parent).children.data(children)

在我的场景中效果很好。

于 2012-11-30T14:30:59.393 回答
1

性能是一个相当相对的术语。如果需要 7 秒,那当然不是很好的表现。在我的计算机append中,150 个新节点大约需要一秒钟,但无论如何我可能会建议您进行一些改进。

你是如何append逐个节点的?

for (var i = 0; i < 150; i++) {
    var added = { text:"node" + i };
    tree.append(added, parent);
}

试试这个(构建一个包含所有要添加的节点的数组,然后调用append):

var added = [];
for (var i = 0; i < 150; i++) {
    added.push({ text: "node" + i });
}
tree.append(added, parent);

在我的电脑中,它从 1105 毫秒变为 787 毫秒。没那么多,但是......

但是,这是插入节点的时间,而不是渲染所需的时间。是您的问题append还是在屏幕上呈现?

于 2012-11-27T16:32:42.993 回答