使得编写流畅且响应灵敏的应用程序变得越来越困难。Workers 的名声不好但在任何 Web 开发人员的工具带中它可能是解决此类问题的重要且有用的工具。让我们快速了解 Web 上的 Workers! 我厌倦了总是将网络与 Android 和 iOS 等所谓的原生平台进行比较。网络是流式的这意味着当您第一次打开应用程序时它没有本地可用的资源。这是一个根本性的差异以至于本机平台的许多架构选择并不容易应用于网络(如果有的话 但无论你往哪里看多线程无处不在。iOS 使开发人员能够使用Grand Central Dispatch轻松并行化代码Android 通过其新的统一任务调度程序WorkManager和 Unity 等具有作业系统的游戏引擎来实现这一点。这些平台不仅支持多线程而且使其尽可能简单的原因始终是相同的确保您的应用程序感觉很棒。
在这篇文章中我将概述我的思维模型
为什么多线程在网络上很重要我将向您介绍我们作为开发人员可以使用的原语并且我将讨论一些使其变得简单 电话号码清单 的架构采用多线程甚至是增量式的。 性能不可预测的问题 目标是保持您的应用程序流畅且响应灵敏。平滑意味着具有稳定且足够高的帧速率。响应式意味着 UI 以最小的延迟响应用户交互。这两个因素都是让您的应用程序感觉精致且高品质的关键因素。 根据RAIL 的说法响应性意味着在 100 毫秒内对用户的操作做出反应而流畅意味着当屏幕上的任何内容移动时每秒传输稳定的 60 帧 fps。因此我们作为开发人员有 1000ms/60 = 166ms 来生成每一帧这也称为帧预算。
我说我但实际上是浏览器有毫秒的时间来完成渲
染帧所需的一切。我们开发者只直接负责浏览器要处理的一部分工作量。该工作包括(但不限于) 检测用户可能已点 B2C 电话列表 击或未点击的元素; 触发相应的事件; 运行关联的 JavaScript 事件处理程序; 计算风格; 进行布局; 绘画层; 并将这些图层合成到用户在屏幕上看到的最终图像中; (和更多 …) 工作量相当大。 条形图显示事件JavaScript样式布局绘制和合成占用每个帧的时间。 浏览器必须为屏幕上显示的每一帧执行各种工作。(大预览) 与此同时我们的业绩差距正在扩大。随着每一代新产品的发布顶级旗舰手机的速度都变得越来越快。另一方面低端手机变得越来越便宜使得以前可能负担不起的人群可以使用移动互联网。