アイテムを選択するとキャンバスが再描画される要素と mousemove メソッドがたくさんあります。
function redraw(ctx) { // ctx - canvas context
if (!needRedraw)
return;
ctx.save();
ctx.clearRect(0, 0, w, h);
drawItems(ctx);
ctx.restore();
}
function drawItems(ctx) {
var l = nodes.length(); // array of elements for drawing (from 100 to 100000)
for(var i = 0; i < l; i++) {
var item = nodes[i];
ctx.beginPath();
ctx.strokeStyle = colors(item.type);
ctx.fillStyle = fill(item);
ctx.arc(item.x, item.y, item.r, 0, Math.PI * 2, true);
ctx.fill();
ctx.stroke();
ctx.closePath();
}
}
この非常に高価なプロセスのすべての要素を実行するため、このプロセスを最適化するにはどうすればよいでしょうか? 非同期メソッドを使用できますが、彼を適用する方法がわかりませんか?