Web Workers的用例是什么?

时间:2010-05-05 13:40:36

标签: javascript html5 web-worker

我正在寻找使用Web Workers API的真实场景。

3 个答案:

答案 0 :(得分:131)

  • John Resig(jQuery成名)有a bunch of interesting examples of using web workers here - 游戏,图片,加密。

  • 另一种用途是Web I / O - 换句话说,在后台轮询URL。这样您就不会阻止等待轮询结果的UI。

  • 另一个实际用途:在Bespin中,他们使用Web Workers来进行语法突出显示,当你使用应用程序时,不希望阻止你的代码编辑

  • 来自Mozilla:工作人员有用的一种方法是允许代码在不阻塞用户界面线程的情况下执行处理器密集型计算。

    作为一个实际的例子,想想一个拥有大型#s表的应用程序(这是真实世界,BTW - 取自我2年前编写的应用程序)。您可以通过输入字段更改表中的一个#,并且在相当密集的过程中重新计算不同列中的一堆其他数字。

    旧的工作流程是:更改#。当JavaScript通过对其他数字的更改进行处理时,获取咖啡并且网页在3分钟内没有响应 - 在我将其优化为地狱之后。回来喝咖啡。改变第二个#。重复多次。单击“保存”按钮。

    与工作人员的新工作流程可能是:更改#。获取正在重新计算某些内容的状态消息,但您可以更改其他#s。改变更多#s。完成更改后,请等待状态更改为“所有计算完成后,您现在可以查看最终的#并保存”。

答案 1 :(得分:31)

我用它们从浏览器向服务器发送大量数据。显然,您可以使用常规AJAX调用来执行此操作,但如果这会占用每个主机名之一的宝贵连接。此外,如果用户在此过程中执行页面转换(例如单击链接),则上一页中的JavaScript对象将消失,您无法处理回调。使用Web工作时,此活动是在带外进行的,因此您可以更好地保证它将完成。

答案 2 :(得分:6)

另一个用例:

如果您有大量图像和其他媒体文件以压缩格式从服务器交换,则在后台压缩/解压缩文件。