gpt4 book ai didi

javascript - 事件循环多久在浏览器中运行一次?

转载 作者:行者123 更新时间:2023-12-01 15:49:36 24 4
gpt4 key购买 nike

我知道事件循环会定期运行以检查浏览器是否有任何事件,并检查任务队列。但是,这种情况多久发生一次?有固定的间隔吗?

我知道网页上的阻塞代码会阻塞事件循环,因为 JavaScript 是单线程的,但是在异步代码中(阻塞最小),事件循环多久运行一次?

最佳答案

事件线程不是按时间间隔触发的,而是由来自操作系统的信号触发,这些信号将事件添加到消息队列中,如键和鼠标事件,或通过您自己的代码中的回调(如 XHR 和 setTimeout)。见 https://developer.mozilla.org/en-US/docs/Web/JavaScript/EventLoop#Event_loop

主线程在以下之间共享:

  • 界面布局
  • JS执行

  • 每当一个 event发生(XHR 回调、单击处理程序、setTimeout 回调...),您的 JS 运行,但 UI 不会更新,直到您的 JS 完成执行。

    有一种方法可以使用其他线程,WebWorkers,并且该代码无法访问 DOM,因此它是线程安全的并且可以无限期地运行。

    另请注意,每个 window对象有一个单独的线程。

    关于javascript - 事件循环多久在浏览器中运行一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39108546/

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