範例
新增 worker.js
檔,可以在裡面處理複雜的運算。使用 postMessage
方法可以將內容傳送至主執行緒。
1 2 3 4 5 6
| let i = 0;
setInterval(() => { i++; postMessage(i); }, 1000);
|
在主執行緒,可以透過 onmessage
接收 worker 傳過來的內容。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <script> if (typeof(Worker) !== 'undefined') { const w = new Worker('worker.js');
w.onmessage = (event) => { console.log(event); };
setTimeout(() => { w.terminate(); }, 1000 * 10); } </script> </body> </html>
|
參考資料