按设备性能特征。在尖端 iPhone 上需要 05 毫秒的事情在诺基亚 2 上可能需要 10 毫秒。消费者系统的性能是完全不可预测的。请注意,RAIL 已被用作指导框架 6 年。确实值得注意的是,无论消费者屏幕的本地刷新费用如何,60fps 绝对是一个占位符值。例如,一些配备 90Hz 屏幕的现代 Pixel 手机和配备 120Hz 显示屏的 iPad Pro 将帧预算分别减少到 111 毫秒和 83 毫秒。对于同样复杂的主题,除了测量 reuestAnimationFrame 回调之间经过的时间之外,没有适当的方法来确定您的实用程序正在运行的设备的刷新费用。 * JavaScript JavaScript 被设计为与浏览器的主要渲染循环同步运行。几乎每个 Web 应用程序都依赖于这个模型。这种设计的缺点是少量缓慢的 JavaScript 代码也会阻止浏览器的渲染循环持续下去。他们一直步调一致,如果其中一个未能结束,另一种选择就无法保留。
允许将长期运行的职责集成到
基于回调和下一个保证。为了保持应用程序干净,您需要确保 JavaScript 代码与浏览器必须执行的不同任务(时尚布局绘图等)相结合的持续时间不再超出该工具的框架价格范围。为了保持 乌拉圭移动数据库 应用程序的响应能力,您需要确保任何给定的事件处理程序在设备显示屏上显示交易的时间不超过一百毫秒。在开发期间在您自己的工具上实现这一点可能很困难,但是在您的应用程序可能运行的每个工具上实现这一点似乎也是不可能的。这里的常见建议是将代码或其等效措辞分块,以向浏览器提供方式。基本原理是相同的。为了让浏览器有机会发送下一帧,您可以将代码正在执行的操作分解成更小的块,然后将控制权再次传递给浏览器,以允许它在这些块中执行工作。有多种方法可以屈服于浏览器,但它们都不是很好。
最近提出的任务计划程序 API 的目标是立即公开此功能
然而,即使我们有一个 API 来生成类似 watch for YieldToBrowser (或类似的东西)的 API,该方法本身也是错误的。为了确保不超出框架预算,您需要绘制足够小的块,以便您的代码至少在符合 BSB 目录 框架的情况下生成。此外,过于频繁地生成代码可能会导致调度责任的开销,从而对实用程序的整体性能产生净负面影响。现在将其与设备不可预测的整体性能相结合,我们应该知道没有适合所有设备的正确的块长度。当想要咀嚼 UI 绘画时,这尤其复杂,因为向浏览器提供可能会渲染部分整个界面,从而增加布局和绘图的整体价值。了解图像优化 Addy Osmani 的关于在互联网上优化和交付高质量图像的新明智指南。所有内容都包含在一本 528 页的电子书中。跳转到目录↬功能面板网络工作者 有一种方法可以打破与浏览器渲染线程的同步。我们可以将一些代码移动到独一无二的线程中。