Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有什么方法可以优化列表树,并用大量的子对象进行扩展?_Javascript_Tabulator - Fatal编程技术网

Javascript 有没有什么方法可以优化列表树,并用大量的子对象进行扩展?

Javascript 有没有什么方法可以优化列表树,并用大量的子对象进行扩展?,javascript,tabulator,Javascript,Tabulator,我试着用制表树来显示一些层次数据,我很喜欢它 现在,我的数据有很多子节点,因此,当扩展父节点时,速度会非常慢。下面是更好地描述情况的提琴: 尝试单击父节点之一 我使用这部分代码来模拟数据(因此级别1有5个节点,每个节点有10000个子节点,每个子节点大约有100个节点) 让treeData=[]; for(设i=0;i

我试着用制表树来显示一些层次数据,我很喜欢它

现在,我的数据有很多子节点,因此,当扩展父节点时,速度会非常慢。下面是更好地描述情况的提琴:

尝试单击父节点之一

我使用这部分代码来模拟数据(因此级别1有5个节点,每个节点有10000个子节点,每个子节点大约有100个节点)

让treeData=[];
for(设i=0;i<5;i++){
设level1Data={
名称:“包含大量子项的数据”,
数据:“某物”
};
让1级儿童=[];
对于(设j=0;j<10000;j++){
设level2Data={
名称:“数据子级2”,
数据:“某物”,
};
让Level2儿童=[];
for(设k=0;k<100;k++){
设level3Data={
名称:“数据子级3”,
数据:“某物”
};
Level2儿童推送(Level3数据);
}
level2Data.\u children=level2Children;
Level1儿童推送(Level2数据);
}
Level1数据。_children=Level1儿童;
treeData.push(level1Data);
}
有什么方法可以优化它吗?
我试图查看代码,但无法找出可以更改的内容,它似乎在进行递归扩展?
还试图阅读文档中的任何“优化配置”,但也没有运气


谢谢

您可以尝试取消数据嵌套,其中包含500万个条目。要创建的DOM元素太多了!制表器似乎有一些回调,您可以使用它们来查看行何时展开。@Calculuswhiz您介意详细说明“取消嵌套”是什么意思吗?你是想说不要使用树结构吗?因为我需要将数据放在树结构中(这是主要要求)。正如Calculuswiz所说,500万个孩子需要加载到一个表中,这是该表难以处理的原因。您的任何用户都无法从表中吸收如此多的数据,因此可能值得考虑如何更好地显示它。@OliFolkerd-hmm实际数据总共约为400k,我只是使用实际数据中每个级别的最大子级数。但是,正如我所说,实际的用户需求之一是在数据库中扩展和折叠具有如此巨大数据量的列,这就是为什么我使用树表。在这一点上,我建议在扩展行时通过ajax加载树的子级
let treeData = [];
for (let i = 0; i < 5; i++) {
  let level1Data = {
    name: "Data with a lot of Children",
    data: "Something"
  };
  let level1Children = [];
  for (let j = 0; j < 10000; j++) {
    let level2Data = {
      name: "Data Children level 2",
      data: "Something",
    };
    let level2Children = [];
    for (let k = 0; k < 100; k++) {
      let level3Data = {
        name: "Data Children level 3",
        data: "Something"
      };
      level2Children.push(level3Data);
    }
    level2Data._children = level2Children;
    level1Children.push(level2Data);
  }
  level1Data._children = level1Children;
  treeData.push(level1Data);
}