anu icon indicating copy to clipboard operation
anu copied to clipboard

1.4.9的requestIdleCallback有时间分片吗?

Open xilixjd opened this issue 5 years ago • 2 comments

感觉现在的requestIdleCallback并没有时间分片 deadline.timeRemaining() 永远大于 ENOUGH_TIME

// function requestIdleCallback(fn) {
//     fn(deadline);
// }
Renderer.scheduleWork = function () {
    // performWork(deadline);
    requestIdleCallback(performWork)
};

我把anu里的requestIdleCallback注释掉,改为用浏览器的requestIdleCallback 再把调用performWork的代码也改了,这样行吗

xilixjd avatar Nov 27 '18 10:11 xilixjd

还没有,目前异步功能在官方React也要到17才支持

RubyLouvre avatar Nov 27 '18 13:11 RubyLouvre

了解了 那 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 秒就能渲染出来 是递归渲染的效率问题吗?

xilixjd avatar Nov 28 '18 03:11 xilixjd