Dynatree +延迟加载=慢

时间:2012-10-02 11:11:38

标签: dynatree jquery-dynatree

我开始在我的项目中使用Dynatree,我遇到了一个问题 - 当我尝试懒惰阅读时,它的工作速度非常慢。每当我调用addChild时,我发现我的整个树都被重新渲染,我觉得它效率不高。

有谁知道我能用它做什么?

两年前,mar10写道:“enableUpdate(true)调用tree.redraw(),因此整个树都会更新。这将随1.0版本发生变化,但即使这样,组合addChild调用也会更快。” (http://stackoverflow.com/questions/3097791/dynatree-addchild-question-for-the-components-author)

我现在使用1.0版,但我找不到任何更改。

2 个答案:

答案 0 :(得分:0)

也许您可以尝试 1.2.2版本,最新版本,最新的jquery& UI包?

https://code.google.com/p/dynatree/

答案 1 :(得分:0)

您可以使用ajax调用初始化和更新Dynatree,而不是addChild。使用dynatree的initAjax和节点的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调用加载子节点时不会重新加载整个树。