主线程想调用分线程,
先在主线程中发送postMessage,然后调用onmessage方法接受分线程传回的数据
// 创建一个Worker对象
var worker = new Worker ('./worker.js')
// 绑定接受消息的监听
worker.onmessage = function (event) {
console.log('主线程接受分线程返回的数据:' + event.data);
alert(event.data)
}
// 向分线程发送消息
worker.postMessage(num)
console.log('主线程向分线程发送数据:' + num);
分线程(Work.js) 中
var onmessage = function (event) {
var num = event.data
console.log('分线程接受到主线程发送的数据:' + event.data);
// 计算
var result = fibonacci(num)
postMessage(result)
console.log('分线程向主线程返回数据:' + result);
}
缺点:
-运行速度慢
-不能跨域加载js
-worker内代码不能访问dom(更新ui)
-不是每个浏览器都支持这个特性