事件 – 什么是浏览器事件循环?

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

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

我想知道什么是什么,在事件循环过程中以及在哪个顺序发生什么?

浏览器事件循环是由浏览器启动的线程,它不断扫描并运行不同的事件,就像听起来一样。当事件发生时,它们被放在事件队列中,并依次由一个事件线程运行。您的javascript不应该创建自己的循环等待它完成或任何类似的…它将阻止一个连续的事件循环线程。相反,您将使用类似setTimeout或setInterval的方法,并检查您正在等待的任何条件,以便浏览器在等待时可以进行工作。

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

http://stackoverflow.com/questions/5425863/what-is-a-browser-event-loop

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:事件 – 什么是浏览器事件循环?