强制可折叠布局中的分布式 json 加载
Distributed json loading in force collapsable layout
我是D3的新手,非常感谢一些帮助。我正在尝试修改此力可折叠布局
https://bitbucket.org/kolbyjAFK/d3/src/f87f85b9c6e2/examples/force/force-collapsible.html
它加载的数据位于单个 json 文件中https://bitbucket.org/kolbyjAFK/d3/src/f87f85b9c6e236f20dec8151ae11438950aaf967/examples/data/flare.json?at=fix-interpolate-hsl
但是,如果我有一个不想立即加载的数据怎么办。我想只在用户单击特定节点时调用子节点。
所以我基本上想模块化 json,以便在单击节点时,包含子数组的 json 文件会动态加载。
我需要这样做,因为我的数据是巨大的 500k 叶节点。
我该如何进行这种动态加载?
为了帮助您入门,代码中的 click
函数是解决此问题的关键。
现在它看起来像这样:
function click(d) {
if (d.children) {
d._children = d.children;
d.children = null;
} else {
d.children = d._children;
d._children = null;
}
update();
}
这仅通过在两个不同的数组之间移动节点来隐藏/显示结构中的节点:children
当它们可见时; _children
当他们不是的时候。
您可能想尝试的是:
确保在 JSON 数据中,每个
node
对象都有一个filename: _fileNameString_
对象。(就像您现在在正在加载的 JSON 中name: _nodeName_
一样(然后,您的
click
函数必须执行以下操作:function click(d) { if (d.children) { d._children = d.children; d.children = null; } else if (!d.children && !d._children) { var nameOfTheFile = d.filename; var childObject = d3.json(nameOfTheFile); d.children.push(childObject); } else { d.children = d._children; d._children = null; } update(); }
请注意,我还没有测试过这个,所以我不确定它是否有效,但我认为这种方法可能是可行的。
编辑:另请注意,这假设您的整个数据已经分布在多个文件中。因此,flare.json
文件或您首先用于加载第一个 JSON 数据的任何文件具有以下结构:
{
"name": "flare",
"filename": "children1.json",
"children": [ ]
}
children1.json
可能是这样的:
[
{
"name": "cluster",
"filename": "children2.json",
"children": [ ]
},
{
"name": "graph",
"filename": "children3.json",
"children": [ ]
},
{
"name": "optimization",
"filename": "children4.json",
"children": [ ]
}
]
等等...最重要的是,您已经必须以您想要/需要的结构将数据以某种方式分发到这些文件中。
- jQuery匹配JSON对象的部分文本
- 在循环中分配json值时,值被覆盖
- 需要帮助设置json数组
- 如何在Javascript中将JSon对象转换为数组
- 我可以在json对象中添加一个函数吗
- 使用JS将数组转换为json对象
- Javascript-如何读取json文件中的列并将其保存在Javascript数组中
- 使用JQuery解析JSON嵌套数组
- 在使用Polymer'加载所有json文件后执行方法;s的核心ajax
- 如何使用json将对象列表从java转换为javascript
- 如何使用 node.js 比较两个 json 数组
- 如何将JSON数据导入我的ejs模板
- 区分JSON中的矩阵和列表列表
- 不显示带有本地json文件数据的谷歌地图脚本
- 如何将json数据显示为html
- 如何为json对象中的段发送array[]
- 根据id将json数组组合为一个json数组
- Json数据包含日期和时间格式
- 强制可折叠布局中的分布式 json 加载
- 开源远程/分布式/持久JSON对象库,用于Python服务器端和Javascript客户端