- js语言是单程,所有任务只能在一个线程完成,WebWorker为js创建多线程环境,允许主线程创建worker线程,将一些任务分配给worker线程运行,主线程和worker线程互不影响;
主线程和worker线程通信
<!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>WebWorker</title>
</head>
<body>
<script>
var w1 = new Worker('./myWebWorker.js');
w1.onmessage = function(event) {
console.log('event', event.data)
}
</script>
</body>
</html>
// myWebWorker.js
self.postMessage('消息')
在开发过程中可以将一些耗时的任务给到worker线程中让其处理,这样可以提高效率;