これはに関するものです。私はしばらくの間、この問題に苦しんでいましたが、今は ではないことを認識していますので、以下の私の問題の解決策を考えました(これはうまくいきません)。jsTree:配列からajax/renderノードを持つprogressive_render
私はajaxでjson_dataプラグインを使用するツリーを持っています。 特定のノードを開くと、サーバーからの結果は1000個以上の jsonノードの配列になります。レスポンスはかなり速いですが、それ自体のレンダリングはしばらく(ユーザー体験は、彼が迷惑「スクリプトではありません 応答 - 継続/スクリプトを停止」取得することです をとる。メッセージを
私が送った結果を制限したことについて考えソリューション からサーバーを小さな番号(たとえば200)に戻し、いくつかの "詳細を表示" ラベル(またはjQueryスクロールイベントを使用)を使用して次の200をフェッチします。 ただし、これらの各ノードでjstree.createを使用すると非常に遅いです 私はこのスレッドに気付きましたon the jsTree google group ここでIvanはすべてのノードを同時に作成することをお勧めします parse_json関数 - これは私のためには機能しません。私は何をしようとしているの
短いコードスニペット: (クリックするとラベル「詳細を表示し」):
$.ajax({
// send data to server in order to get the relevant json back
}(),
success : function (r) {
var parent_node = data.inst._get_parent(data.rslt.obj);
var id = parent_node.attr("id");
$("#root_tree").jstree("_parse_json", r, parent_node);
$("#root_tree").jstree("clean_node", parent_node, false);
}
});
上記の例では、JSONをレンダリングしに子を追加していません親ノードの
他の方法があれば誰でも指摘できると思います。 私は間違っています。ここでも 、使用して:
$.each(r, function(i, node) {
var id = parent_node.attr("id");
$("#root_tree").jstree("create", "#"+id, "last", node, false, true);
});
は、作業を行いますが、非常に非常にゆっくりと(一緒にすべての千個のノード をレンダリングするよりも遅いです)。
おかげ
が、それは_parse_json' *リターンはあなたが追加することができ、DOMツリーを* 'のように聞こえる:私は、ツリービューで関数を呼び出すことはなく、イベントを聴いてしまった何
'parent_node.append(result)'?)。 JSON_DATAプラグインのソースを参照して、そのメソッドが実際に行っていることを確認しましたか? – kamranicus