1.先安装worker-loader。我的版本3.0.8
npm i worker-loader
2.编写你的worker.js (我的命名是a.js)
编写一个比较高的循环,这个计算量级如果不用webworker,页面会卡死大概10-20S左右。在此期间无法对页面进行操作。
onmessage = function (e) {
// onmessage获取传入的初始值
let sum = e.data;
for (let i = 0; i < 90000; i++) {
for (let i = 0; i < 10000; i++) {
sum += Math.random()
}
}
// 将计算的结果传递出去
postMessage(sum);
}
3.引入worker.js
import Worker from 'worker-loader!./a.js'
引入路径直接写在 worker-loader! 后面
直接调用就可以
methods: {
makeWorker() {
// 获取计算开始的时间
let start = performance.now()
// 新建一个线程
let worker = new Worker()
// 线程之间通过postMessage进行通信
worker.postMessage(0)