1.4.9的requestIdleCallback有时间分片吗?
xilixjd opened this issue · comments
xjd commented
感觉现在的requestIdleCallback并没有时间分片
deadline.timeRemaining() 永远大于 ENOUGH_TIME
// function requestIdleCallback(fn) {
// fn(deadline);
// }
Renderer.scheduleWork = function () {
// performWork(deadline);
requestIdleCallback(performWork)
};
我把anu里的requestIdleCallback注释掉,改为用浏览器的requestIdleCallback
再把调用performWork的代码也改了,这样行吗
司徒正美 commented
还没有,目前异步功能在官方React也要到17才支持
xjd commented
了解了
那 fiber 架构在不时间分片的情况下是否也比 react15 的架构渲染效率更优呢?
我用 anu 的 1.4.9 和之前未支持 16 的 1.1.x 版本同时渲染 10 万个节点
class App extends React.Component {
render() {
let divs = []
for (let i = 0; i < 100000; i++) {
divs.push(<div>{i}</div>)
}
return (
<div>
{divs}
</div>
)
}
}
1.1.x 版本非常慢,大概需要 20 秒页面才出来
1.4.9 效率快很多,差不多 3 秒就能渲染出来
是递归渲染的效率问题吗?