javascript internals:如何实现事件?

时间:2011-11-01 20:12:10

标签: javascript-events event-handling v8 spidermonkey javascript-engine

我的问题与JS引擎如何实现异步事件的模式有关,当我们在dom上执行类似绑定事件处理程序的操作时,可以说是单击事件。?

他们是否有像收听所有点击事件的单独线程?当一个事件确实发生时,他们会引用绑定列表并冒泡事件吗?

类似于Ajax,异步网络调用,浏览器跨越一个新线程,该线程将开始从服务器监听数据,当收到响应时,它会调用成功处理程序吗?

1 个答案:

答案 0 :(得分:7)

阅读有关javascript事件队列的this post,看看它是否回答了您的大部分问题。将有一个本机操作系统线程处理与实际操作系统事件(鼠标事件,键盘事件,计时器事件,网络I / O事件等等)的接口,然后这些线程被送入JS队列,JS引擎可以进一步将它们发送到Javascript代码。操作系统级别有多少单独的线程是特定于实现的,并且可能随实现而变化。