【发布时间】:2015-04-23 16:18:14
【问题描述】:
目前我正在尝试扩展一个包含超过 100,000 个节点的 d3.js 树。许多叶子存在于多个父项下,因为它们适合多个部分/项目/区域。用户执行的搜索会导致树向具有该节点 ID 的所有叶子开放。这可能会导致图在极少数情况下尝试同时打开多达 2000 个叶节点。目前,我发现在不使 Chrome 崩溃的情况下执行此操作的唯一方法是使用以下 setInterval 代码。
var timeout = setInterval(function(){
for(var j = i; j < i + 10 ; j++){
makeEl(d[j]);
Search.rules += (j+1) + ") " + Graph.findNode(d[j]) + "<br><br>";
highlightPathTo(d[j].id);
if(j >= d.length - 1){
//When all of the elements have been itterated through.
clearInterval(timeout);
highlight.selected = d;
$('#highlights').removeClass('empty');
break;
}
}
i+=10;
}, 500);
但是,这需要几分钟并且非常滞后。我还有其他方法可以一次性打开这么多节点,从而更快完成吗?
【问题讨论】:
标签: javascript html css d3.js