Dynatreeは、ノードを内部構造に格納します。「レンダリング」は、ツリーのステータスを反映するためにDOMでHTML要素を作成または更新するプロセスです。たとえば、ブランチの最後のノードには特別なクラス名があるため、ノードを追加するには、前の「最後のノード」からこのクラスを削除して、新しいクラスに追加する必要があります。
.addChild(data)を呼び出すたびに、レンダリングがトリガーされます。1回の呼び出しで100ノードを渡す場合、レンダリングは1回だけ実行されるため、1つの単一ノードで100回呼び出すよりも、常にパフォーマンスが向上します。
現在(リリース0.5.4)addChildは次のパターンを使用しています。
var prevFlag = tree.enableUpdate(false);
[modify the tree]
tree.enableUpdate(prevFlag);
enableUpdate(true)はtree.redraw()を呼び出すため、ツリー全体が更新されます。これはリリース1.0で変更されますが、それでもaddChild呼び出しを組み合わせる方が高速です。
もう1つの側面は、DOMでノードがいつ作成されるかです。1.0以降、HTML要素の作成は、ノードが初めて表示(展開)されるまで延期されます。そのため、DOMを肥大化させることなく、非常に多くのノードを効率的な内部Dynatreeデータ構造にロードすることができます。
ツリー全体をプリロードする方がユーザーフレンドリーな場合、またはオンデマンドで単一ブランチを遅延ロードする場合は、サーバー、ネットワーク、およびクライアントによって異なります。したがって、さまざまなシナリオのベンチマークを常に行う必要があります。