D3: Силовая раскладка + блокировка работы
Как можно было бы выполнить блокировку работы с другим потоком (например, загрузкой данных) при использовании макета форсирования?
На простейшем из возможных примеров размещения силы ( http://bl.ocks.org/mbostock/4062045) я попробовал две вещи:
setInterval(function() {
console.debug('BEGIN');
for (var i = 0; i < 1000000000; ++ i);
console.debug('END');
}, 2000);
а также:
var run = function() {
console.debug('BEGIN');
for (var i = 0; i < 1000000000; ++ i);
console.debug('END');
d3.timer(run, 500);
return true;
};
d3.timer(run, 500);
Но, к сожалению, оба, кажется, делают то же самое. Блок силовой разметки. Это можно увидеть здесь: http://bl.ocks.org/mfolnovic/8193673.
Я прочитал http://ejohn.org/blog/how-javascript-timers-work/ и думаю, что понимаю, почему это происходит. Есть ли другой способ обойти эту проблему?