这个是html5 的新特性,它允许我们将复杂的、耗时的、安全的js 处理逻辑放在浏览器的后台线程中进行处理,让js线程不阻塞ui线程的渲染。
如何定义一个worker?
new Worker(new URL('./index.js', import.meta.url 可选,锁定当前模块,))
注意:
'./index.js'是worker的url
import.meta.url 可选,锁定当前模块,不能使用在commonjs上
// work.js
self.onmessage = (message) => {
self.postMessage({
answer: 11111
})
}
// index.js
const worker = new Worker(new URL('./work.js', import.meta.url))
worker.postMessage({
question: 'shuzishi ? '
})
worker.onmessage = (message) => {
console.log(message.data.answer)
}