今天看一篇老外的性能优化文章
https://web.dev/optimize-long-tasks/#a-dedicated-scheduler-api
偶然 看到了 Scheduler
MDN 上的介绍
https://developer.mozilla.org...
大概意思就是可以 调度用户代码的优先级?
但是 实在想不到 有哪些应用场景, 比如我两个函数
const fnA = ()=>{console.log('aaa')}
const fnB = ()=>{console.log('bbb')}
想要 先执行 fnA
再执行 fnB
fnA()
fnB()
这样不就好了, 还是我对 这个 调度器 理解有误?
恳请 大佬解惑!
首先明确一点,对于
原本不可控,现在需要控制
的流程,才需要引入调入机制
对于将要执行的
异步任务
,可能在某些场景下,你想要后排入的 异步任务 先执行,这种场景下才需要 调度。优先级
的概念,在发起 异步任务 时,为该任务分配一个 优先级,后续调度器
进行任务调度时,先执行谁,后执行谁,才有依据这里我们假设一个需求场景
调度机制
除了 可指定任务优先级的能力 之外,还具备取消任务
的能力。同样这里假设一个 页面切换 的场景:主线程
还在进行上一个页面的组件渲染,就会出现卡顿,页面无法响应的现象对于这种场景,我们可以把 每个组件的渲染 拆分开,交由调度器去调度
注意:以上代码均不完整,仅作演示
最后,有兴趣可以了解下
react scheduler
,这是 react 实现的调度器,或许可以帮助你走进 认识调度器 的大门