Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/431.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 如何在具有50000个节点的D3.js中平滑放大和缩小?_Javascript_D3.js_Frontend - Fatal编程技术网

Javascript 如何在具有50000个节点的D3.js中平滑放大和缩小?

Javascript 如何在具有50000个节点的D3.js中平滑放大和缩小?,javascript,d3.js,frontend,Javascript,D3.js,Frontend,我有一个用D3.js编写的简单代码 index.html-它包含html代码 manyNodes.json-它包含节点的json数据 dndTree.js-它包含在浏览器上呈现json数据的javascript代码 json数据的格式如下: { "user_id": 0, "name": "Buckner Carrillo", "children": [ { "user_id": 13, "name": "Snide

我有一个用
D3.js
编写的简单代码

  • index.html-它包含html代码
  • manyNodes.json-它包含节点的json数据
  • dndTree.js-它包含在浏览器上呈现json数据的javascript代码
json数据的格式如下:

    {
    "user_id": 0,
    "name": "Buckner Carrillo",
    "children": [
      {
        "user_id": 13,
        "name": "Snider Barrett"
      },
      {
        "user_id": 14,
        "name": "Janice Atkins",
        "children": [
          {
            "user_id": 11,
            "name": "cdc dd"
          }
        ]
      }
    ]
  }
以下是工作代码:

//获取JSON数据
treeJSON=d3.json(“https://gist.githubusercontent.com/robschmuecker/7926762/raw/adfd3d8017f99d18497dc1592db9416c568353c9/manyNodes.json,函数(错误,树数据){
//计算节点总数,最大标签长度
var totalNodes=0;
var MaxLabellLength=0;
//用于拖放的变量
var selectedNode=null;
var draggingNode=null;
//平移变量
var panSpeed=200;
var panBoundary=20;//拖动时,距离边20px以内的区域将平移。
//杂项变量
var i=0;
var持续时间=750;
变种根;
//图表的大小
var viewerWidth=$(document).width();
var viewerHeight=$(document.height();
var tree=d3.layout.tree()
.尺寸([viewerHeight,viewerWidth]);
//定义d3对角线投影,供节点路径稍后使用。
var diagonal=d3.svg.diagonal()
.投影(功能(d){
返回[d.y,d.x];
});
//通过遍历所有节点来执行某些设置的递归辅助函数
功能访问(家长、访客、儿童fn){
如果(!父项)返回;
探视(家长);
var childrenFn=childrenFn(父母);
if(儿童){
var count=children.length;
对于(变量i=0;i0?d.children:null;
});
//根据节点名称对树进行排序
函数sortTree(){
树。排序(函数(a,b){
返回b.name.toLowerCase()1){
//删除链接路径
链接=树。链接(节点);
nodePath=svgGroup.selectAll(“path.link”)
.数据(链接、功能(d){
返回d.target.id;
}).remove();
//删除子节点
nodesExit=svgGroup.selectAll(“g.node”)
.数据(节点、功能(d){
返回d.id;
}).过滤器(功能(d,i){
if(d.id==draggingNode.id){
返回false;
}
返回true;
}).remove();
}
//删除父链接
parentLink=tree.links(tree.nodes(draggingNode.parent));
svgGroup.selectAll('path.link').filter(函数(d,i){
if(d.target.id==draggingNode.id){
返回true;
}
返回false;
}).remove();
dragStarted=null;
}
//定义BaseSSVG,附加用于样式设置的类和zoomListener
var baseSvg=d3.选择(“树容器”).追加(“svg”)
.attr(“宽度”,视图E