作家
登录

关于Web Workers你需要了解的七件事

作者: 来源: 2017-05-08 13:20:48 阅读 我要评论

介绍

Web Workers许可你在后台运行JavaScript代码,而不会阻拦web用户界面。Web Workers可以进步网页的┞符体机能,还可以加强用户体验。Web Workers有两种风格 ——专用Web Workers和共享Web Workers。本文评论辩论了你所须要知道的Web worker的七个关键方面,赞助你决定在应用法度榜样中应用它们的话。

addEventListener("message", function (evt) {    var date = new Date();    var currentDate = null;    do {        currentDate = new Date();    } while (currentDate - date < evt.data);    postMessage(currentDate);}, false);

1.Web Workers许可你在后台运行JavaScript代码

平日,你在Web页面中编写的JavaScript代码在与用户界面雷同的线程中履行。这就是为什么当你点击一个会触发漫长处理过程的按钮,网页的用户界面会冻结。除非处理完成,不然你就无法工作于用户界面。Web worker许可你在后台履行JavaScript,以便用户界面保持响应,即使同时正在履行某些脚本。履行脚本的后台线程平日称为worker thread或worker。你可以生成尽可能多的worker,只要你想。你还可以将数据传递到正在worker thread中履行的脚本,并在完成时将值返回到主线程。然而,Web Workers有一些限制,如下所示:

  • Web Workers无法大年夜web页面拜访DOM元素。
  • Web Workers无法大年夜web页面拜访全局变量和JavaScript函数。
  • Web Workers不克不及调用alert()或confirm()函数。
  • 不克不及在Web Workers中拜访诸如窗口,文档和parent如许的对象。

然则,你可以应用setTimeout(),setInterval()等函数。你也可以应用XMLHttpRequest对象向办事器发出Ajax请求。

2.Web Workers有两种类型

Web Workers有两种类型:专用Web Workers和共享Web Workers。专用Web Workers伴随创建它们的网页一路存在和逝世亡。这意味着在网页中创建的专用Web Workers无法经由过程多个网页拜访。另一方面,共享Web Workers在多个网页之间是共享的。Worker类代表专用Web Workers,而SharedWorker类代表共享Web Workers。

在很多情况下,专用Web Workers就可以知足你的需求。这是因为平日你须要在worker thread中执行一个网页的特定脚本。然而,有时,你须要在worker thread中履行一个脚本,并且这个worker thread对多个网页通用。在这种情况下,创建很多专用Web Workers,每个页面一个,还不如应用共享Web Workers。由一个网页创建的共享web worker仍然可用于其他网页。只有当所有到它的连接被封闭,才能破坏它。共享Web Workers比专用Web Workers更复杂一点。

3.Worker对象代表专用Web Worker

如今,你懂得了Web Workers的基本常识,让我们看看若何应用专用Web Workers。下面评论辩论的示例假设你已应用爱好的开辟对象创建了一个Web应用法度榜样,并且还在其Script文件夹中添加了jQuery和Modernizr库。将HTML页面添加到web应用法度榜样,然后键入以下代码:

<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head>    <title></title>    <script src="scripts/modernizr.js"></script>    <script src="scripts/jquery-2.0.0.js"></script>    <script type="text/javascript">         $(document).ready(function () {             if (!Modernizr.webworkers)             {                 alert("This browser doesn't support Web Workers!");                 return	
			
 1/4    1 2 3 4 下一页 尾页

  推荐阅读

  Go调度器: M,P和G

这是另一篇关于Go调剂器(scheduler)的文┞仿。 原文: GO SCHEDULER: MS, PS & GS by Uber工程师 Povilas。网上已经有很多关于Go调剂器的文┞仿了, 比如 Golang调剂器源码分析 ,多看一些>>>详细阅读


本文标题:关于Web Workers你需要了解的七件事

地址:http://www.17bianji.com/lsqh/35063.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)