【问题标题】:Dynatree + lazy loading = slow动态树 + 延迟加载 = 慢
【发布时间】:2018-04-04 19:52:28
【问题描述】:

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

有人知道我可以用它做什么吗?

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

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

【问题讨论】:

    标签: dynatree jquery-dynatree


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      您可以使用 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 调用以加载子节点时不会重新加载整个树。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-02-06
        • 1970-01-01
        • 2017-11-02
        • 1970-01-01
        • 2018-07-23
        • 2021-04-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多