什么是浏览器事件循环?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (10)

我一直在使用GWT进行一些Web应用程序编程,并且被术语“浏览器事件循环”所困惑。

我遇到了需要在浏览器事件循环完成后执行延迟命令和“执行某些操作”的情况。

我想知道它到底是什么以及在事件循环过程中以什么顺序发生?

提问于
用户回答回答于

浏览器事件循环是浏览器启动的一个线程,它不断扫描并运行不同的事件,就像听起来一样。当事件发生时,它们被放入事件队列并由一个事件线程轮流运行。你的javascript不应该创建自己的循环来等待它完成或者类似的东西......它会阻塞这个连续的事件循环线程。相反,您可以使用setTimeout或setInterval之类的东西,并检查您正在等待的任何条件,以便浏览器在“等待”时可以进行工作。

GWT很好,因为它可以在一定程度上使用调度器来共同选择这个过程- 在你想要在事件循环“完成”之后运行某些事情的情况下,你可能想要使用scheduleFinally或scheduleDeferred。它会将一段代码的处理程序注入到事件队列中,以便它将在当前执行上下文中的所有其他代码之后运行(当前执行上下文==,其中您当前处于当前JavaScript对象层次结构中的窗口作为根对象)在下一个放入队列中的事件之前运行。

扫码关注云+社区