Как операционная система связывает события с dom-объектом? - PullRequest
0 голосов
/ 04 января 2019

Когда мы щелкаем мышью, она посылает сигнал операционной системе и, таким образом, ОС может определить, на какой ресурс повлиял, и запустить обработчик событий.

Как этот щелчок мыши отображается на нашем событии click на объекте dom? как ОС присоединяет наш обработчик событий к объектам дерева dom и выполняет его в цикле событий?

/ Editted /

Я задал этот вопрос для конкретного аппаратного ресурса. Он должен быть таким же для внутренних ресурсов, например: когда мы говорим, что сервер nodejs прослушивает событие запроса и выполняет обработчик события. Здесь Nodejs работает в операционной системе, а сервер http настраивается с помощью nodejs ( IP + порт) .. так что в этом случае какой ресурс прослушивает входящий запрос?

1 Ответ

0 голосов
/ 04 января 2019

Операционная система - нет. Событие проходит через ряд слоев. Каждый слой знает больше деталей об этом конкретном слое, чем предыдущий:

  • Обработчик мыши (в ОС) передает щелчок по X, Y на экране оконному менеджеру (также часто является частью ОС, но может быть переключен в различных * nix-вариантах)
  • Менеджер окон передает клик приложению для окна, в котором произошел клик
  • Приложение в окне (в данном случае веб-браузер) передает клик вашему обработчику событий

Поскольку браузер знает DOM и знает, какой элемент DOM был нажат, он может проверить обработчики событий для этого элемента и вызвать эти обработчики с правильным элементом.

Каждый слой имеет только детали, специфичные для этого слоя. Обработчик мыши знает, с какой мышью он имеет дело, а оконный менеджер и браузер (вероятно) этого не делают. (Они могут спросить у ОС, хотят ли они знать, но обычно не обязаны). Обработчик мыши не знает, где находятся окна (или даже, что ) окна), но менеджер окон делает. Оконный менеджер не знает об элементах DOM (и о других различных частях браузера, таких как панель закладок или подобное), но браузер знает.

(Выше приведен очень грубый набросок, в нем задействовано больше слоев, но он дает вам представление.)

...