使用 `requestIdleCallback` 的协作调度

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。立即开始使用 $200 的免费积分!

Potch

如果您绝对必须在主线程上执行任务(修改 DOM 或与仅限主线程的 Web API 交互),现在您可以请求浏览器为您提供一个可以安全执行此操作的时间窗口!

requestIdleCallback 允许浏览器等待它识别出空闲时间段。空闲时间段可能是绘制单个帧之间的一两毫秒。

这看起来像是成为最佳实践的一种事情。但是,我们如何确定哪些事情应该使用它,哪些事情不应该使用它?这就像“只要我们接触 DOM,我们就应该将其包装起来吗?”也许还需要加上“除非您向用户显示新内容,这优先于动画卡顿”。如果您是一个抽象了 DOM 接触(以及其他主线程任务)的框架,那么您如何决定是否优先考虑?

直接链接 →