gpt4 book ai didi

javascript - requestIdleCallback 和 setImmediate 的区别?

转载 作者:行者123 更新时间:2023-11-29 16:01:59 25 4
gpt4 key购买 nike

目前有 2 个不同的 API 旨在将任务分解为预定的回调函数。

据我所知,目前还没有实现这两种功能的 JavaScript 运行时(浏览器或 Node)。

我想更好地了解这两个功能的比较。我意识到 requestIdleCallback 有一个 timeout 选项,可用于允许浏览器决定何时调用它,并将 IdleDeadline 对象传递给setImmediate 传递任何提供的参数的回调,但除此之外这些 API 有何不同?

例如,下面两个例子在功能上是否相同?

setImmediate(function() {
// Do something.
});
requestIdleCallback(function() {
// Do something.
}, {timeout: 0});

如果注册了多个回调但第一个回调运行时间超过空闲时间怎么办?

最佳答案

setTimeout 会等待一段时间,然后执行回调。

requestIdleCallback 将等待 main thread在执行回调之前处于空闲状态。这意味着它不会减慢动画速度,用户仍然可以单击按钮并输入输入。

setTimeout 和requestIdleCallback 如何选择? setTimeout 最好在必须执行回调时使用(示例:将数据发送到分析服务器或注销用户)。 requestIdleCallback 最适合您不想因执行回调而损害用户体验的情况(示例:重新呈现 DOM)。

请记住,requestIdleCallback 仍处于试验阶段。

关于javascript - requestIdleCallback 和 setImmediate 的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51757894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com