0

我开始在我的项目中使用 Dynatree,但我遇到了一个问题——当我尝试懒惰阅读时,它的运行速度非常慢。我发现每次调用 addChild 时都会重新渲染整个树,我认为它效率不高。

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

两年前,mar10 写道:“enableUpdate(true) 调用 tree.redraw(),因此整个树都被更新了。这将随着 1.0 版本而改变,但即便如此,结合 addChild 调用会更快。” (http://stackoverflow.com/questions/3097791/dynatree-addchild-question-for-the-components-author)

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

4

2 回答 2

0

也许你可以试试1.2.2 版本,最新的版本,带有最新的 jquery 和 UI 包?

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

于 2012-10-08T08:37:10.623 回答
0

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

于 2018-04-04T11:52:28.083 回答