P粉3691966032023-09-05 10:50:29
requestAnimationFrame
方式
在退出循環時使用 requestAnimationFrame 或 setTimeout 以允許更新 UI,然後從中斷處恢復循環。
const display = document.getElementById("Display"); function process() { let index = 0; const max = 3000000000; function run () { while (index <= max) { if (index % 100000000 == 0) { display.innerHTML = index; break; } index++; } if (index++ <= max) window.requestAnimationFrame(run); } run(); } process();
<p id="Display"></p>
#將您的演算法放入 JS 檔案中,當需要更新時會發布一條訊息
for (let i = 0; i <= 3000000000; i++) { if (i % 100000000 == 0) self.postMessage(i); }
並在您的 UI 程式碼中。
const display = document.getElementById("Display"); const myWorker = new Worker("workerAlgorithm.js"); myWorker.onmessage = (e) => { display.innerHTML = e.data; };