gpt4 book ai didi

javascript - 操作系统如何将事件与 dom 对象联系起来?

转载 作者:行者123 更新时间:2023-11-30 09:17:28 24 4
gpt4 key购买 nike

当我们点击鼠标时,它会向操作系统发送信号,操作系统可以通过这种方式识别受影响的资源并运行事件处理程序。

这个鼠标点击是如何映射到我们在 dom 对象上的点击事件的?OS 如何将我们的事件处理程序附加到 dom 树对象并在事件循环中执行它?

/已编辑/

我针对特定的硬件资源问了这个问题。内部资源是否相同,例如:当我们说 nodejs 服务器监听请求事件并执行事件处理程序时。这里 Nodejs 在操作系统上运行,http 服务器由 nodejs 设置( ip + port)..所以在这种情况下,哪个资源正在监听传入请求?

最佳答案

操作系统没有。该事件经历了一系列层。每一层都比前一层知道更多关于该特定层的细节:

  • 鼠标处理程序(在操作系统中)将屏幕上 X、Y 处的点击中继到窗口管理器(通常也是操作系统的一部分,但可在各种 *nix 变体上交换)
  • 窗口管理器将点击转发给发生点击的窗口的应用程序
  • 窗口中的应用程序(在本例中为 Web 浏览器)将点击转发给您的事件处理程序

由于浏览器了解 DOM,并且知道单击了哪个 DOM 元素,因此它可以检查该元素的事件处理程序并使用正确的元素调用这些处理程序。

每一层只有特定于该层的细节。鼠标处理程序知道它处理的是哪种鼠标,但窗口管理器和浏览器(可能)不知道。 (他们可以询问操作系统是否想知道,但通常不必这样做。)鼠标处理程序不知道窗口在哪里(甚至不知道那里有 windows),但窗口管理器可以。窗口管理器不知道 DOM 元素(以及浏览器的各种其他部分,如书签栏或类似元素),但浏览器知道。

(上面只是一个很粗略的草图,涉及的层次比较多,但它给了你思路。)

关于javascript - 操作系统如何将事件与 dom 对象联系起来?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54036035/

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