简介:Web Workers 是运行在后台的javaScript 不影响页面的性能,
tips: web worker 通常用于耗费 CPU 资源的任务、代码仅做demo
| 事件 | 描述 |
|---|---|
|
postMessage
|
发送消息 |
| onmessage | 消息监听器 |
App.vue
<template>
<div id="app">
<!-- web worker -->
<p>计数: <span id="count"></span></p>
<button @click="startWorker()">开始工作</button>
<button @click="stopWorker()">停止工作</button>
</div>
</template>
<script>
export default {
name: 'App',
components: {
},
data(){
return {
w: ''
}
},
methods: {
startWorker(){
if(!this.w) {
this.w = new Worker("/worker.js");
}
this.w.postMessage({arr:[1,2,3,4]})
this.w.onmessage=e=>{
document.getElementById("count").innerHTML = e.data.percentage;
}
},
stopWorker(){
this.w.terminate();
this.w = undefined;
}
}
}
</script>
worker.js
this.onmessage = e => {
let num = 0;
setInterval(()=>{
num++;
this.postMessage({
percentage: num
})
}, 1000);
}
浙公网安备 33010602011771号