策略个小工具,到更高级别的类似分派器的 API,因为它们在社区结构中并不罕见。然而对于这种标准化技术来说,它们还没有达到这个重要程度,所以我可能不会花时间在这里讨论它们。如果您好奇,请检查这个 TC39 想法并观察 JavaScript 的下一代将提供什么。摘要 Worker 是一个关键工具,可以防止任何意外的长时间运行代码阻塞浏览器渲染,从而保持引导线程的响应和流畅。由于与人交谈的这种固有的异步性质,员工采用可能需要对您的社区软件进行一些架构修改,但在更改为流通后,您将能够轻松地为能够访问该内容的设备提供额外的帮助网。您需要确保采用一种结构,使您的代码能够轻松地飘逸,以便可以针对非必要的线程体系结构调整这种常见的整体性能影响。
这是社区工作者人体工学
但是这个最复杂的更多功能可以通过库和 Comlink 一起抽象出来。更多来源 主线过度劳累和工资过低 Surma Chrome 开发者峰会 2019(视频) 绿色能源高效渐进式 Web 应用 David Microsfort DevBlogs 案例 墨西哥移动数据库 研究 移动 Threejs – 基于 WebXR 应用程序用于此主线程 Surma 何时需要操作 Worker Surma 缓慢 postMessage Surmacomlink GoogleChromeLabs internet-workerpm常见问题解答中有许多问题和想法,这些问题和想法已成为有用的有用资源,因此我希望抢先一步并在这里正确归档我的答案。 postMessage 慢吗?对于所有优雅的一般典型性能问题,我的中间建议是学位第一!除了你评分之外,没有什么是渐进的(或快速的)。然而,在我看来,postMessage 通常足够快。根据经验,如果 JSONstringifymessagePayload 低于 10KB,即使使用最慢的手机,也很少能生成扩展帧。
如果它确实成为您的软件应用程序的瓶颈
将您的画作分成较小的数量,以便您可以发送较小的消息。如果此消息是一个国家广泛的挑战,其中出现的最有效的小细节已更改此消息,请优先于整个对象提供补丁(区别)。如果您传递大量各种各样的消息以将几条消息直接批量合并为一条消息,它也很有用。作为一种解决方案,您可以尝试切换到该消息的数字模式,并在发送基于对 选择列表 象的绝对消息时传输 ArrayBuffer。对于这种情况,哪种方法是准确的取决于具体情况,并且可以通过测量和摆脱该瓶颈来真诚地回答。我需要从 Worker 访问成为 DOM。我由此收到了一群人。但在大多数情况下,这实际上解决了麻烦。您可能会冒着有效生长第二个重要线程的风险,该线程最感兴趣的问题与高质量线程中的问题相同。为了让 DOM 能够从多个线程获得访问权限,可以使用锁来减缓 DOM 操作。这需要破坏许多赠送的互联网应用程序。此外,这种同步模型还有一些优点。它给浏览器一个明确的标志,即使假设作为 DOM 出现在一个合法的 u 中。 S.,它可以被呈现到该显示器。