为了账号安全,请及时绑定邮箱和手机立即绑定

HTML5中的web Worker个人了解

标签:
JavaScript

谈到web Worker首先想到进程和线程的关系怎样
进程(Process)是管理内存的基本单位;线程(Thread)处于进程内部,是进程内执行代码的基本单位。 每个进程内部至少有一个线程!每个进程内部可以同时存在多个线程,并发执行。
线程(Thread)浏览器进程中发起HTTP请求时,可以使用多个线程(如Chrome中有6个请求线程); 浏览器进程中负责渲染DOM树(执行所有的HTML/CSS/JS代码)的只有一个线程——称为UI主线程。

  • Worker对象
    • 事件
      • onmessage事件 - 用于监听Worker文件 当Worker调用postMessage()方法传递消息时,该事件被触发 。
      • onerror事件 - 用于监听错误 * 当Worker出现错误时,该事件被触发 方法
      • postMessage(msg)方法 - 传递消息
      • terminate()方法 - 终止通信(HTML与Worker之间)
  • Worker文件的限制
    • 无法使用DOM内容
    • 无法使用BOM内容(window对象)
      • 以下内容允许使用 setTimeout()和cleatTimtout() setInterval()和clearInterval()
        Worker实现的效果
      • 单向通信 - worker文件->HTML页面 传递消息 Worker线程给主渲染线程传递数据:
        主线程: var w2 = new Worker('x.js');
        w2.onmessage = function(event){ event.data; }
        Worker线程: postMessage( '字符串数据' );
      • 双向通信 - worker文件<->HTML页面 传递消息 主渲染线程给Worker线程 传递数据: 主线程: var w1 = new Worker('x.js');
        w1.postMessage('字符串数据');
        Worker线程: onmessage = function(event){ event.data; }
        Worker线程给主渲染线程传递数据:
        主线程: var w2 = new Worker('x.js');
        w2.onmessage = function(event){ event.data; }
        Worker线程: postMessage( '字符串数据' );
  • Worker的应用场景
    • 应用于网络网页游戏
    • 配合Ajax实现更高级的异步请求
    • 实现类似于Ajax的"异步"
    • Ajax - 一定与服务器端有关
    • Worker - 可以不需要服务器端
点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消