Web Worker为Web内容在后台线程中运行脚本提供了一种简单的方法。线程可以执行任务而不干扰用户界面。此外,他们可以使用XMLHttpRequest执行 I/O (尽管responseXML和通道属性总是为空)。一旦创建, 一个worker 可以将消息发送到创建它的JavaScript代码, 通过将消息发布到该代码指定的事件处理程序 (反之亦然);
兼容性:webworker 兼容性.pngworker中可用的函数和接口你可以在web worker中使用大多数的标准javascript特性,包括
NavigatorXMLHttpRequestArray,Date,Math, and StringWindowTimers.setTimeout`and WindowTimers.setInterval在一个worker中最主要的你不能做的事情就是直接影响父页面。包括操作父页面的节点以及使用页面中的对象。你只能间接地实现,通过self.postMessage回传消息给主脚本,然后从主脚本那里执行操作或变化。
特性:为 JavaScript引入真正的线程,不必再使用 setTimeout()、setInterval()、XMLHttpRequest 来模拟并行Worker 利用类似线程的消息传递实现并行。这非常适合确保对 UI 的刷新、性能以及对用户的响应。Web Worker 的三大主要特征:能够长时间运行(响应),理想的启动性能以及理想的内存消耗。适用场景使用专用线程进行数学运算Web Worker最简单的应用就是用来做后台计算,而这种计算并不会中断前台用户的操作图像处理通过使用从或者元素中获取的数据,可以把图像分割成几个不同的区域并且把它们推送给并行的不同Workers来做计算大量数据的检索当需要在调用 ajax后处理大量的数据,如果处理这些数据所需的时间长短非常重要,可以在Web Worker中来做这些,避免冻结UI线程。背景数据分析由于在使用Web Worker的时候,我们有