9.2 Dedicated Worker
範例
<!DOCTYPE html>
<html lang="zh-Hant">
<head>
<meta charset="utf-8">
<title>Dedicated Worker(專有 Worker 或 稱做一般 Worker)</title>
</head>
<body>
<p>計數器:<span id="result"></span></p>
<button type="button" id="start_worker">啟動 Worker</button>
<button type="butotn" id="stop_worker">停止 Worker</button>
<script>
var worker;
var btn_start_worker = document.getElementById("start_worker");
var btn_stop_worker = document.getElementById("stop_worker");
btn_start_worker.addEventListener("click", function(){
console.log(worker);
if(window.Worker){
if(!worker){
// 建立一個 Dedicated Worker
worker = new Worker("./js_worker/worker.js");
// worker 監聽 message 事件,看是否有回傳資料,有的話就觸發 message 事件
worker.addEventListener("message", function(e){
document.getElementById("result").innerHTML = e.data;
});
}else{
alert("已啟用");
}
}else{
alert("瀏覽器不支援 Worker");
}
});
btn_stop_worker.addEventListener("click", function(){
if(worker){
worker.terminate(); // 停止 worker 的執行
worker = undefined;
}else{
alert("worker 未啟用");
}
});
</script>
</body>
</html>功能
結果示意
在主執行緒中,建立 Dedicated Worker
在主執行緒中,監聽是否有資料從 Worker 中傳過來
在主執行緒中,清除 Worker
在 Worker 中,執行倒數計數的兩種寫法
Last updated