如果你不是很了解Event事件,建议先这篇文章《理解javascript中DOM事件》。
首先,我们需要实例一个Worker的对象,浏览器会根据新创建的worker对象新开一个接口,此接口会处理客户端与indexedDB数据库之间的通信。这里的数据库是指浏览器数据库。如果,你需要判断浏览器是否支持worker对象,详见如下代码。或者浏览器是否支持indexedDB数据库,详见同下,二者判断最好选择前者。因为IE不支持indexedDB 。
if(window.Worker){ dosomething } // Worker window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB; if(!window.indexedDB){ dosomething } // indexedDB
之后,worker对象会通过postMessage线程向indexedDB数据库发送数据,当indexedDB数据库接收到客户端发送的数据,首先把数据的键值储存并记录到indexedDB数据库表里面,其实相当于把数据保存在一张结构完整的表内。
于是,indexedDB数据库会把接收到的数据值扔给新接口处理,当新接口获得数据并解析之后,会通过postMessage扔回一条数据给数据库,数据库接收返回的数据处理的方式和上面一样,此时indexedDB数据库会把返回的数据扔给客户端接受参数的onmessage线程,主线程后面onmessage线程主要是接收传回的数据。
var txt1 = document.querySelector("#txt1"); var txt2 = document.querySelector("#txt2"); var result = document.querySelector("#result"); window.indexedDB = window.indexedDB || window.mozIndexedDB || window.webkitIndexedDB || window.msIndexedDB; if(!window.indexedDB) { console.log("你的浏览器不支持IndexedDB"); } if(window.Worker){ var _this = new Worker("../../js/build/scroll_ten1.js"); txt1.onchange = function(){ _this.postMessage([txt1.value,txt2.value]); // e = [txt1.value,txt2.value] console.log("message post to work"); } txt2.onchange = function(){ _this.postMessage([txt1.value,txt2.value]); // e = [txt1.value,txt2.value] console.log("message post to work"); } _this.onmessage = function(s){ //接收到的数据 e result.textContent = s.data; } }
onmessage = function(e){ //e接收Worker.postmessage传的参数 var s = (e.data[2]*e.data[1]); var workerResult = "result : " + s; postMessage(workerResult); //Worker.onmessage进行回调workerResult参数 }
想必大家看了以上的分析之后,肯定在想用Worker能做什么?对于这个问题,目前能解决线程的非阻塞问题,如何说起,当用户改变browser的的尺寸、以及拖动浏览器时,主线程访问后台数据时,并不会中断数据之间的进程。
支持Worker的browser有哪些?
分享一个链接caniuse,通过这个工具你能更加全面的看到各个浏览器的(hack)。
// *注Worker的首字母必须是大写的
// *注Worker的脚本目录必须是HTML能够访问到的目录
以上就是本文的全部内容,希望对大家深入理解JavaScript中worker事件api有所帮助。
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新动态
- 白嘉莉.2021-精选集【海山】【WAV+CUE】
- 欢乐钓鱼大师玛瑙金鳞怎么钓 欢乐钓鱼大师玛瑙金鳞钓鱼攻略
- 欢乐钓鱼大师樱飘雪怎么钓 欢乐钓鱼大师樱飘雪钓鱼攻略
- 欢乐钓鱼大师银翼的奇术师怎么钓 欢乐钓鱼大师银翼的奇术师钓鱼攻略
- 陈琳.1994-你的柔情我永远不懂[WAV]
- 邓瑞霞2006-广东风云2IN1[南方]2CD[WAV+CUE]
- 黄征-爱情诺曼底-2003-APE整轨
- 妥协只是暂时的!《对马岛之魂》PC版的多人模式仍需绑定PSN
- 开启抢先体验后 《盗贼之海》成PS美国第二畅销游戏
- 《恶意不息》老板再用中文询问中国玩家:对汉化是否满意
- 2个女生.2000-坚固友情精选辑【EMI百代】【WAV+CUE】
- 潘越云李丽芬吴楚楚.1981-三人展(滚石民歌巨星系列)【滚石】【WAV+CUE】.
- 元若蓝.2006-爱无限大【滚石】【WAV+CUE】
- 刘德华《经典传说·粤语精选集》[WAV/分轨][610MB]
- 庄心妍《2020年新专辑歌曲 念》[WAV/分轨][400MB]