マウスを移動する毎にそのマウスポジションを取得し、その値を関数にて計算し配列へとpushすると毎回30程度のデータができます。
その配列の値を頭から順に処理しようとfor文を使い(今回はlogのみの出力です)処理を施しますが、最初の内は問題なくconsole.logへ数値が出力されます。
しかし、マウスのポジションは常に動いているためか動作が間に合わずlogの出力が遅延してしまいます。
動作自体はしており、しばらく待つとlogが出力されますが遅延が酷くとても使用に耐えられません。このような場合、遅延など無く上手く処理するするにはどの様にするのが良いでしょうか。宜しくお願い致します。
JavaScript
1let point = []; 2 3let width = window.innerWidth; 4let height = window.innerHeight; 5let x0 = null; 6let y0 = null; 7 8 window.addEventListener('mousemove', (event) => { 9 point[]; 10 x0 = Math.floor(((event.clientX / width) * 100)); 11 y0 = Math.floor(((event.clientY / height) * 100)); 12 //計算の呼び出し 13 test(x0, y0) 14 for(key in point){ 15 console.log(point[key].x); 16 console.log(point[key].y); 17 } 18 }, false); 19 20function test(x0, y0) { 21 const px = Math.abs(x1 - x0); 22 . 23 . 24 //別途計算式があります 25 . 26 . 27 28 point.push({x:x0, y:y0});} 29 30 return point; 31 }