Web Worker 是为领会决 JavaScript 在浏览器环境中没有多线程的问题。正常形况下,浏览器执行某段程序的时刻会壅闭直到运行竣事后在恢复到正常状态,而HTML5的Web Worker就是为领会决这个问题,提升程序的执行效率。 以是Web Worker 的更佳使用场景是执行一些开销较大的数据处理或盘算义务。
现在除了IE,其他主流浏览器都已经支持Web Worker。在建立 web worker 之前,我们一样平常需要检测用户的浏览器是否支持它,方式如下:
if(typeof(Worker)!=="undefined"){ //支持 }else{ //浏览器不支持 }
worker是一个工具,通过组织函数Worker建立,参数就是一个js文件的路径;文件中的js代码将运行在主线程之外的worker线程; 建立worker很简朴,如下:
var myWorker = new Worker('worker.js');
注重:worker运行在另一个全局上下文中(self),这个全局上下文不同于window,以是不能在woker中接见window和DOM;
该线程分为两种:dedicated worker和shared worker;dedicated worker只能被初始化它的js上下文中使用;shared worker可以在多个js上下文中使用。通常使用的worker是dedicated worker,它的事情情况可以通过chrome的调试工具查看。
前端开发者应该知道浏览器中 *** 和UI公用一个线程, *** 盘算历程中,不能响应UI;若是遇到盘算量对照大的义务,如操作图像像素时,会造成用户行为得不到响应。Web Worker 是为领会决 JavaScript 在浏览器环境中没有多线程的问题。支持 Web Worker 的浏览器会分外提供一个 JavaScript Runtime 供 Web Worker 使用。它的更佳使用场景是执行一些开销较大的数据处理或盘算义务。
Web Worker 使用起来异常简朴,在“主线程”中执行如下操作即可建立一个 Worker 实例,通过监听 onmessage 事宜获取新闻,通过 postMessage 发送新闻:
“主线程”和Worker 之间通过 postMessage 发送新闻,通过监听 onmessage 事宜来吸收新闻,从而实现二者的通讯。
如下图所示:
焦点代码如下:
//主线程代码 var worker = new Worker('worker.js'); worker.onmessage = function (e) { var data = e.data; } var messageData = { message: 'hello worker!' }; worker.postMessage(messageData);
随着城镇化的深入,农村市场的潜力越来越大,那么现在在农村做什么生意最赚钱呢? 小本生意很多,赚钱的小本生意也不少。就看你怎么去观察和发现,以及自己能否去做怎样做。小本生意上能力、耐心和特立独行往往更能...
小伙伴们大家好呀!小编又来搞事情了,我们知道如今英雄联盟是热度十分高的时候!因为一年一度的S赛开始了!我们玩家们在期待中国队夺冠的时候提心吊胆的,因为今年是夺冠的一年啊!但是当我们充满担心的看完S赛之...
本文导读目录: 1、谁有黑客专用墙纸,桌面 2、给一串c代码,目的在cmd下背景是像黑客电影里的绿色,最好其他地方也做的想黑客一样 3、我想要 关于 黑客帝国3D的屏保代码 研究一下, 4...
专柜樱桃洗面奶卖40元,一般淘宝上28元。据我所知tfs没有出绿茶系列~只有一个绿茶洁容霜专柜65淘宝30这是官网。 这个就是给混合用的,我现在人就KL,我昨天刚去店里看了,里面的这个洗面奶价格是RM...
那么如果选择了一款好的产品,就不太容易出现大量库存的情况,好的微商产品必备的4大特点: 第一个特点:它一定是个消耗品,高频率使用的一个产品,这样的特点决定了这个产品的复购率,所以大家做微商选择产...
新华社西昌11月13日电 题:绝不放过任何细小问题——天通一号02星成功发射的幕后故事 李国利、王玉磊、杨银军 结束了17天的沉寂,四川大凉山腹地的群山间又一次响起震天轰鸣。 1...