我开始在我的项目中使用Dynatree,我有一个问题-当我尝试懒惰阅读时,它的运行速度非常慢。我发现当我每次调用addChild时,我的整个树都会被重新渲染,我认为它的效率很低。
有人知道我能用它做什么吗?
两年前,mar10写道:"enableUpdate(true)调用tree.redraw(),因此整个树都会更新。这一点将在1.0版中改变,但即便如此,组合addChild调用也会更快。“(http://stackoverflow.com/questions/3097791/dynatree-addchild-question-for-the-components-author)
我现在使用1.0版本,但我找不到任何更改。
发布于 2012-10-08 16:37:11
也许你可以尝试1.2.2版本的,最新的版本,带有最新的jquery和UI包?
发布于 2018-04-04 19:52:28
您可以使用ajax调用来初始化和更新Dynatree,而不是addChild。使用dynatree的initAjax和node的appendAjax方法。
作为data参数的实参,我传递父节点的id (如果是根节点,则为0)。
initAjax: {
type: 'POST',
url: 'inc/treeNodes.php',
dataType: 'json',
data: {key: 0}
}和
onLazyRead: function (node) {
node.appendAjax({
type: 'POST',
url: "inc/treeNodes.php",
dataType: 'json',
data: {key: node.data.key}
})
}使用这种方法,速度不再是问题,因为在执行Ajax调用以加载子节点时,不会重新加载整个树。
https://stackoverflow.com/questions/12689205
复制相似问题