Chrome浏览器中的JavaScript多线程---WebWorker

本文探讨了JavaScript单线程执行带来的问题,并介绍了HTML5的Web Worker API如何解决这个问题。Web Worker允许JavaScript在主线程外的独立线程运行,避免阻塞UI。在Chrome浏览器中,Dedicated Worker在Render进程中运行,而SharedWorker因Android平台限制在多个Render进程间共享,导致实现复杂,目前在Chrome M30中未被支持。
摘要由CSDN通过智能技术生成

  浏览器中的JavaScript是单线程执行的,如果遇到重量级的计算任务时,一般需要运行很长时间,这样就会造成UI任务来不及响应,带来不好的用户体验。那么如何在JavaScript中使用多线程来解决这类问题呢?HTML5引入了新的Web Worker API,它让一段JavaScript程序运行在主线程之外的另外一个线程或进程中。Chrome对Web Worker API也有了基本的支持,在Android平台上虽然还存在缺陷,但是不影响基本使用。

先介绍一下Web Worker的基本知识

Web Worker有两种,一种是常见的Dedicated Worker,在JavaScript中简写为Worker,例如:var worker = new Worker(“source/worker.js”); 该例中worker.js就运行在另外一个线程中,无论计算任务有多重都不会直接阻塞主线程中的UI。另外一种是SharedWorker,它在浏览器中只有一个运行实例,允许所有的页面共享使用。关于Web Worker更多的介绍,请参考W3C的API文档http://dev.w3.org/html5/workers/

现在大家可能会问,现在引入了多线程,那如何保证Worker线程和主线程的同步呢?如果Worker线程和主线程同时修改了页面中的某个节点,岂不是会

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值