這是關於。我一直在爲此苦苦掙扎了一段時間,但只是意識到 不是(本地)可能做到的,所以我想到了下面解決方案來解決我的問題(這是行不通的)。jsTree:progressive_render與陣列中的ajax/render節點
我有一棵樹,它使用json_data插件和ajax。一旦打開 特定節點,服務器的結果就是包含超過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);
});
的工作,但非常非常緩慢(慢於渲染的所有1000個節點 在一起)。
感謝
從什麼伊萬認爲,這聽起來像'_parse_json' *回報* DOM樹可以追加( 'parent_node.append(結果)'?)。你有沒有潛入JSON_DATA插件源,看看該方法實際上做了什麼? – kamranicus 2012-03-27 20:56:00