我使用kendo创建了一个树控件TreeView.it有超过10,000个节点,我在创建Tree时使用了loadOnDemand false.我提供了一个功能来扩展树的级别,为此我创建了一个方法,将参数"级别"作为数字并相应地扩展它,用户可以输入15(最大级别)到方法,它工作正常所有级别的500到600个节点,但是当树具有超过5000个节点时,如果用户尝试扩展到第二级节点之上,则浏览器挂起并显示没有响应错误.
我创建的用于扩展树的方法是: -
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();
}
}
Run Code Online (Sandbox Code Playgroud)
调用以上给定的方法如下: -
ExapandByLevel(15);
Run Code Online (Sandbox Code Playgroud)
这里15是在树中扩展的级别. …