在 Web 浏览器中收集有关事件循环的信息

Gathering information about the event loop in a web browser

本文关键字:事件 循环 信息 Web 浏览器      更新时间:2023-09-26

以下代码在控制台中显示请求的间隔与实际间隔之间的差异。

这是否使我们能够对事件循环的长度说出任何有意义的话(从广义上讲,我对单个即时报价不是很感兴趣)?如果是这样,怎么办?

var start, interval;
interval = 2000; // ms
function go() {
    start = performance.now();
    setTimeout(function() {
        var end = performance.now();
        console.log(end-start-interval);
        go();
    }, interval);
}
go();

它没有。

其中一个原因是:回调将被安排在执行程序空闲后运行。它可能是"一直",除了一种情况,另一个回调可能会碰巧在你的回调之前被安排,并接管执行多长时间。

在这种情况下,您的回调可能会延迟无限的时间,但这不会告诉您有关"稳定状态"情况的信息。