Web Workers的用例是什么?[已关闭]
2022-08-30 01:36:42
我正在寻找使用Web Workers API的真实场景。
John Resig(jQuery的名声)在这里有很多使用Web工作者的有趣例子 - 游戏,图形,加密。
另一个用途是Web I / O - 换句话说,在后台轮询URL。这样,您就不会阻止等待轮询结果的 UI。
另一个实际用途:在Bespin中,他们使用Web Workers来执行语法突出显示,当您使用该应用程序时,您不希望阻止代码编辑。
来自 Mozilla:worker 的一种有用方式是允许你的代码执行处理器密集型计算,而不会阻塞用户界面线程。
举个实际的例子,想想一个应用程序,它有一个大的#s表(这是现实世界,顺便说一句 - 取自我大约2年前编程的应用程序)。您可以通过输入字段更改表中的一个 #,并在相当密集的过程中重新计算不同列中的一堆其他数字。
旧的工作流是:更改 #。去喝咖啡,而JavaScript通过对其他数字的更改来处理,网页在3分钟内没有响应 - 在我将其优化到地狱之后。喝咖啡回来。更改第二个 #。重复多次。点击 保存 按钮。
工作人员的新工作流可以是:更改 #。获取状态消息,指出正在重新计算某些内容,但您可以更改其他#s。更改更多#s。完成更改后,请等到状态更改为“所有计算完成,您现在可以查看最终#s并保存”。
我使用它们将大量数据从浏览器发送到服务器。显然,您可以使用常规AJAX调用来执行此操作,但是如果这占用了每个主机名的宝贵连接之一。此外,如果用户在此过程中执行页面转换(例如单击链接),则来自上一页的 JavaScript 对象将消失,并且您无法处理回调。使用 Web Worker 时,此活动在带外发生,因此您可以更好地保证它将完成。