怎么使用WebWorker-创新互联

这篇文章主要为大家展示了“怎么使用WebWorker”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“怎么使用WebWorker”这篇文章吧。

创新互联服务项目包括柳州网站建设、柳州网站制作、柳州网页制作以及柳州网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,柳州网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到柳州省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

WebWorker是为了解决JavaScript在浏览器环境中没有多线程的问题。正常形况下,浏览器执行某段程序的时候会阻塞直到运行结束后在恢复到正常状态,而html5的WebWorker就是为了解决这个问题,提升程序的执行效率。所以WebWorker的很好使用场景是执行一些开销较大的数据处理或计算任务。

webworker的兼容性

目前除了IE,其他主流浏览器都已经支持WebWorker。在创建webworker之前,我们一般需要检测用户的浏览器是否支持它,方法如下:

if(typeof(Worker)!=="undefined"){

//支持

}else{

//浏览器不支持

}

webworker的创建

worker是一个对象,通过构造函数Worker创建,参数就是一个js文件的路径;文件中的js代码将运行在主线程之外的worker线程;创建worker很简单,如下:

varmyWorker=newWorker('worker.js');

注意:worker运行在另一个全局上下文中(self),这个全局上下文不同于window,所以不能在woker中访问window和DOM;

该线程分为两种:dedicatedworker和sharedworker;dedicatedworker只能被初始化它的js上下文中使用;sharedworker可以在多个js上下文中使用。通常使用的worker是dedicatedworker,它的工作情况可以通过chrome的调试工具查看。

前端开发者应该知道浏览器中js和UI公用一个线程,js计算过程中,不能响应UI;如果遇到计算量比较大的任务,如操作图像像素时,会造成用户行为得不到响应。WebWorker是为了解决JavaScript在浏览器环境中没有多线程的问题。支持WebWorker的浏览器会额外提供一个JavaScriptRuntime供WebWorker使用。它的很好使用场景是执行一些开销较大的数据处理或计算任务。

以上是“怎么使用WebWorker”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注创新互联行业资讯频道!


当前名称:怎么使用WebWorker-创新互联
文章出自:http://ybzwz.com/article/dciphs.html