web无插件的线程处理机制(Worker机制)

JavaScript运行在单线程环境中,加入Worker后即变成了多线程(一个Worker对应一个线程?),但是Woker线程不能访问浏览器的资源,只有主线程才可以访问浏览器的资源。所以在web中对setTimeout/setInterval、ajax和dom事件的异步处理一般依赖事件循环来实现。

1.Web Worker是什么

Web Worker是HTML5标准的一部分,这一规范定义了一套API,它允许一段JavaScript程序运行在主线程之外的另外一个线程中。Web Worker规范中定义了两类工作线程,分别是专用线程Dedicated Worker(只能为一个页面所使用),共享线程Shared Worker(可以被多个页面所共享)。下面将的是专用线程

2.API案例

main.js

var worker=new Worker('task.js');//通过调用构造函数,传入worker脚本文件名,新建一个worker对象
worker.postMessage({id:1,msg:'hello world'});//调用该方法与新创建的工作线程通信,这里传入了一个json对象
worker.onmessage=function(message)//定义了worker对象的onmessage事件,当worker线程返回数据时,onmessage回调函数执行
{
var data=message.data;//数据封装在message参数的data属性中
console.log(JSON.stringify(data));
worker.terminate();//调用worker的terminate()方法可以终止worker线程的运行
};
worker.on
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值