2011-02-24 80 views
0

我使用json數據創建了JSTree。最初,一切都按預期工作。JSTree,創建節點和JavaScript超時

然而,當我使用 「創造」(CRRM插件)動態添加節點具有功能

的jQuery( 「#mpTree」)。jstree( 「創造」, parentNodeId, 「最後」,{ 「attr」:{ 「rel」:「assetNew」,「id」: 「newNodeId」},「data」:「dataVarHere」} ,function(){},true);

如果我超過了在IE中創建的30個後續節點,在Mozilla 60ish中,Javascript超時。 Chrome可以在不超時的情況下處理負載。

很顯然,這遠非理想。有沒有其他的方法來創建一堆節點,並將它們添加到樹中,而不會過度加載?

在此先感謝。

+0

「超時」你的意思是瀏覽器抱怨緩慢的腳本,對吧? – Pointy 2011-02-24 21:49:02

+0

是的,這是正確的。 – jorgemoya 2011-02-24 21:50:20

+0

如果我需要使用crrm插件單擊它們以將其添加到根以及其他節點。我可以寫什麼來訪問用戶點擊的節點的nodeID?我只需要在create built-in函數中使用parentNodeId的通用替代方法。這是我嘗試過但成功的原因。 (「#tree」)。jstree(「create」,$(this.id),「inside」,{「data」:「new child節點「,」狀態「:」打開「},假,真); \t \t THANKs advance。 – 2013-09-15 23:43:01

回答

1

這聽起來像你正在嘗試使用「創建」來加載整個樹。我不認爲它的意圖(或優化)(我認爲它主要是爲現有樹添加一個或兩個節點)。

我認爲通常的做法是使用其中一個數據插件(例如JS_DATA)最初加載您的樹

您的數據來自哪裏?數據庫?如果它還不是HTML,XML或JSON,可以將它轉換爲其中的一種嗎?

+0

我初始加載的樹是使用Json數據,但是我們有一個函數來添加一些資源一個樹的特定節點/節點(以查看數據管理的可視結構),並最終將關係保存在我們的數據庫中。我當前的解決方案可能涉及操縱JSON數據,添加節點以及重新繪製樹,但是我需要知道哪些節點是打開/關閉的並重新打開它們,聽起來像是太麻煩了。 – jorgemoya 2011-02-28 19:19:56

+0

好的。你有沒有看過使用cookies插件記住什麼是開放的?http://www.jstree.com/documen tation/cookies – MGOwen 2011-03-01 02:39:24

+0

就像你說的那樣,創建並不是處理列表的正確方法。我更改爲JSON(必須重新構建數據),並且它會像魅力一樣加載。 – jorgemoya 2011-09-01 19:06:05