2012-11-27 73 views
1

它看起來像下面的功能的性能是非常糟糕的。Kendo UI Treeview附加功能性能

treeView.append(children, parent); 

這裏樹形目錄是劍道UI樹形目錄,是爲兒童容器節點和兒童是大約150新節點(我的方案)陣列。

此代碼執行超過7秒鐘。

我猜追加功能沒有得到很好的項目的集合來實現,所以也許有一些解決方法通過jQuery的生成HTML,但劍道UI樹形也應該瞭解新的結點要處理未來拓展新事件節點正確。 有什麼辦法可以改善上面的代碼的性能嗎?

謝謝 伊霍爾

回答

2

對於那些誰遇到這樣的問題:

最後,我調查了劍道UI源代碼和而不是從原來的職位線我用下面的代碼:

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

,在我的情況下工作得很好。

1

性能是一個非常相對的概念。如果需要7秒,當然這不是一個好的表現。在我的電腦中,有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); 

在我的電腦從1105ms去787沒有那麼多,但...

但是,這是插入節點的時間,而不是渲染所需的時間。你的問題是append還是在屏幕上顯示?

+0

是的,只有一行(從我原來的帖子)執行7秒。 其實我試過了你的兩個樣本,並且都是同一時間。我調查了一下kendo源代碼,發現下面的代碼執行起來要快得多 treeView.dataItem(parent).children.data(children) 如果使用這種方法,你可以回答什麼問題? –

+0

不,我不能。抱歉! – OnaBai