目前我正在嘗試擴展包含100,000多個節點的d3.js樹。許多葉子存在於多個父母身上,因爲它們適合多個部分/項目/地區。用戶執行的搜索會導致樹打開到具有該節點ID的所有葉子。這可能導致圖形嘗試打開,在極少數情況下,一次最多可打開2000個葉節點。目前,我發現唯一不會崩潰的方法就是使用以下setInterval
代碼。在d3.js中一次打開500多個節點
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);
但是,這需要幾分鐘而且非常滯後。我還有什麼其他的方式可以一次完成打開這個節點的數量,這樣可以更快地完成任務嗎?