让前端飞Web前端之路

React 源码解析 - 调度模块原理 - 实现 request

2019-05-05  本文已影响3人  coolheadedY

React 调度原理前置所需要知道的

EventLoop 事件队列

MicroTask和macroTask的api范畴
1macrotasks: setTimeout, setInterval, setImmediate, I/O, UI rendering
2microtasks: process.nextTick, Promises, Object.observe, MutationObserver

这里给了以前的文章帮助理解
Event Loop 的异步流程
Event Loop 事件循环

requestAnimationFrame

MDN requestAnimationFrame

window.requestAnimationFrame(callback);

requestIdleCallback

MDN requestIdleCallback

var handle = window.requestIdleCallback(callback[, options])

参考 requestIdleCallback 的用法
requestIdleCallback 调度

时间片原理

React 的 requestIdleCallback 方案

实现 timeout


实现时间片维护


didTimeout 和 timeRemaining 实现

总结

上一篇 下一篇

猜你喜欢

热点阅读