【问题标题】:Javascript internals: how events are implemented?Javascript 内部结构:事件是如何实现的?
【发布时间】:2011-12-19 19:32:23
【问题描述】:

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

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2020-02-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-09
      • 2017-10-09
      • 2012-01-24
      • 1970-01-01
      相关资源
      最近更新 更多