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);
日常生活有很多秒怂的情况下,用着最绝,最凶的语调,就说着最怂得话,令人听着就感觉十分搞笑幽默,这种会话还可以用以争吵中,能够 一瞬间让另一方气消,怎样用最绝的语调讲出最怂得话?下边产生全方位详细介绍。...
在国务院新闻办公室今天(23日)举行的新闻发布会上,教育部副部长郑富芝介绍,教育部把打赢教育脱贫攻坚战、实现义务教育有保障作为重大政治任务,一手抓“控辍”,一手抓“保学”,扎实推进保障义务教育各项工作...
手机上第一次电池充电,只需将手机上的用电量填满就可以,留意不必过多电池充电。也不必直到低电量模式情况再为蓄电池充电,尽可能随时使用随充,以增加充电电池的使用期限。 知名品牌型号规格:华为公司P40,i...
近日,陈赫在微博中晒出了自己和女儿安安的照片并称:“八个月了。”不知不觉间,张子萱和陈赫的婚姻已经被大家接受,他们的女儿安安也被网友们喜爱。照片中的安安正在模仿爸爸陈赫的动作,父女二人默契十足,网...
有时候翻看本身的伴侣圈,以为当时候太幼稚想要删除去,但想翻回几年前动态又太贫苦了。其实有一个很是利便的删除查找要领。 我们点开微信的首页,点击上面的搜索,点击伴侣圈,输入本身的微信号,这样本身的微信...
技术正在继续改变就业市场的格局。 Pay Scale最近发布了一份2018年最热门的求职工程师报告,技术主宰了增长最快的职业名单。 设计和通信位置也突破了前10。 Pay Scale 首席经济学...