【发布时间】:2014-07-15 07:26:01
【问题描述】:
我使用 kendo TreeView 创建了一个树控件。它有超过 10,000 个节点,并且我在创建树时使用了 loadOnDemand false。 我提供了一个按级别扩展树的功能,为此我创建了一个方法,它将参数“级别”作为数字并相应地扩展它,用户可以在该方法中输入 15(最大级别),它可以正常工作所有级别都有 500 到 600 个节点,但是当树的节点数超过 5000 个时,如果用户尝试在 2 级节点之上展开,则浏览器会挂起并显示无响应错误。
我创建的扩展树的方法是:-
function ExapandByLevel(level, currentLevel) {
if (!currentLevel) {
currentLevel = 0;
}
if (level != currentLevel) {
var collapsedItems = $("#treeView").find(".k-plus:visible");
if (collapsedItems.length > 0) {
setTimeout(function () {
currentLevel++;
var $tree = $("#treeView");
var treeView = $tree.data("kendoTreeView");
var collapsedItemsLength = collapsedItems.length;
for (var i = 0; i < collapsedItemsLength; i++) {
treeView.expand($(collapsedItems[i]).closest(".k-item"));
}
ExapandByLevel(level, currentLevel);
}, 100);
}
else {
//console.timeEnd("ExapandByLevel");
hideLoading();
}
}
if (level == currentLevel) {
hideLoading();
}
}
像这样调用上面给定的方法:-
ExapandByLevel(15);
这里 15 是在树中展开的级别。
当树的节点数超过 5000 个时,如果用户尝试在第二级节点之上展开,则浏览器会挂起并显示无响应错误。 请提出任何方法来做到这一点,我想要的是扩展可以包含超过 5000 个节点的树。
【问题讨论】:
标签: javascript kendo-ui treeview