javascript - 如何排队要在下一帧调用的 MicroTask?

标签 javascript

在非 NodeJS 的现代浏览器环境中运行:

有没有办法将 MicroTask 排队,以便在下一帧中调用?

MicroTask 队列在任务之后被刷新,这是在任何 requestAnimationFrame 回调之前。

在任何 rAF 回调之后,MicroTask 队列也会再次刷新。

从 rAF 回调中请求的任何 rAF 回调确实会在下一帧发生,但只会在任何任务或微任务完成之后发生。

setTimeout 将任务排队,但不能保证在下一帧执行。

requestIdleCallback 的触发也是不可预测的。

虽然我不确定,但 ResizeOberver 听起来可能会在下一帧触发,但它仅在 Chrome 中受支持,并且 polyfills 将基于 rAF 或超时。

最佳答案

您提到了裸requestIdleCallback 和rAF 的问题。 React 内置库声称可以解决这些问题。查看:https://github.com/facebook/react/blob/43a137d9c13064b530d95ba51138ec1607de2c99/packages/react-scheduler/src/ReactScheduler.js

关于javascript - 如何排队要在下一帧调用的 MicroTask?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53350671/

相关文章:

javascript - Typescript 和 google map API 数据返回

javascript - 有没有办法删除世博会每个屏幕上的标题?

javascript - 拆分整个字符串并添加间距?

Javascript for 循环添加多个项目

JavaScript onSubmit 验证

javascript - 在 Cordova ,如何导航到另一个 html 页面?

javascript - 在开发期间在特定 IP 地址上运行 sails.js

javascript - 在 Javascript ES5 和 ES6 中 Function 对象的调用和 apply 方法的上下文中,use strict 如何影响 this 关键字

javascript - jquery google visual api graph 的数据行不起作用

javascript 显示不同的谷歌分析