React fiber为什么不用requestIdlecallback

117 阅读1分钟

1: 兼容问题,safir不兼容,

2:调用频率较低执行大概一秒执行20次,时间得不到保证

3:不可预测性,执行时机不够可靠,可能导致更新延迟过长

为什么用MessageChannel

messageChannel会产生一个宏任务,会在下一次事件循环中执行,不会阻塞当前页面的更新

为什么不用setTimeout

比setTimeout更快通常0-1ms setTimeout通常要4-5ms

为什么不用微任务

微任务将在页面更新前全部完成,达不到将主线程还给浏览器的目的