利用webworker實現前端的多執行緒程式設計
阿新 • • 發佈:2021-01-08
技術標籤:前端JavaScriptjavascriptjs前端
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body >
<!-- 主執行緒 -->
<h1 id="num1"></h1>
<h1 id="num2"></h1>
<button id="start">啟動</button>
<script>
/*
start.onclick = function(){
for(let i = 0; i < 999999; i++){
num1.innerHTML = i
}
}
*/
// 以上做法在for迴圈過長的情況下會阻塞主執行緒,故應使用webworker方式另外新建一個程序處理
start.onclick = function(){
var w = new Worker('worker.js')
w.onmessage = function(e){
num1.innerHTML = e.data
}
w.postMessage('')
}
</script>
</body>
</html>
// 另外新建的執行緒worker.js
onmessage = function (e){
for(let i = 0; i < 999999; i++){
this.postMessage(i)
}
}