浅析HTML5 Web Workers使用场景与作用

HTML5 Web Workers是为网页脚本提供了一种能在后台进程中运行的方法。当创建WoOer对象后,WebwbrkerS就可以通过postMessage方法向任务池发送任务请求,执行完之后再通过postMessage返回消息给创建者指定的事件处理程序,然后通过onmessage捕获返回消息,实现前后台数据的交互。


Web Workers应用场景

  在Web应用程序中,Web WoOers是一项后台处理技术。在此之前使用JavaScript创建的W曲程序中,因为所有的处理都是在单线程内执行,所以如果脚本所需运行时间太长,程序界面会长时间处于停止响应状态,甚至当等待时间超出一定的限度,浏览器会提示脚本运行时间过长需要中断正在执行的处理。

  为了解决这个问题,HTML5新增了一个Web WorkersAPI。使用这个API,用户可以很容易地创建在后台运行的线程,这个线程被称为Worker,如果将可能耗费较长时间的处理交给后台执行,则对用户在前台页面中执行的操作没有影响。

  尽管Web Workers功能强大,但也不是万能的,例如,在Web Workers中执行的脚本不能访问该页面的window对象,因此Web Workers不能直接访问Web页面和DOM API,虽然Web Workers不会导致浏览器UI停止响应,但是仍然会消耗CPU周期,导致系统反应速度变慢。

  如果开发人员创建的Web应用程序需要执行一些后台数据处理,但又不希望这些数据处理任务影响Web页面本身的交互性,那么可以通过Web Workers生成一个WoOer去执行数据处理任务。同时添加一个事件监听器进行监听,并与之进行数据交互。

  Web Workers的另一个用途是可以监听由后台服务器广播的消息,收到后台服务器的消息后,将其显示在Web页面上。这种与后台服务器对话的场景,Web Workers可能会使用到Web Sockets或Server—Sent事件。

  Web Workers接口可以创建真正的系统级别的进程,还可以使用XMLHttpRequest来处理I/O,无论responseXML和channel属性是否为null。使用它可以很容易设计并发操作效果,这将会很有趣。例如,在做网站下载的时候使用Worker,或者使用Worker实现处理扩展功能。

  注意:后台进程(包括Web Workers进程)不能对DOM进行操作。如果希望后台程序处理的结果能够改变DOM,只能通过返回消息给创建者的回调函数进行处理。

Web Workers能够为用户做些什么?

  加载一个JavaScript文件,进行大量的复杂计算,而不挂起主进程,并通过postMessage和onMessage进行通信。

可以在WoOer中通过importScripts(url)方法加载JavaScript脚本文件。

可以使用setTimeout()、clearTimeout()、setInterval()和clearInterval()。

可以使用XMLHttpRequest进行异步请求。

可以访问navigator的部分属性。

可以使用JavaScript核心对象。

web Workers的局限性:

不能跨域加载JavaScriot。

      更多的HTML5视频课程,在线学习平台为你提供——www.elsyy.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值