Zdarzenia#
Bazowe interfejsy#
Z mechanizmem zdarzeń związanych jest kilka bazowych interfejsów zdarzeń # (basic event interfaces), które muszą być obsługiwane przez każdą implementację. Zaliczamy do nich cztery następujące interfejsy:
Bazowe interfejsy zdarzeń oraz wszystkie polecenia z nimi związane zdefiniowano w najnowszej specyfikacji DOM4, dlatego w bieżącej specyfikacji D3E, jeśli się pojawiają, to tylko jako referencje. Można powiedzieć, że w przypadku zdarzeń zależności między najważniejszymi specyfikacjami webowymi są następujące DOM4
> D3E
> HTML5
, czyli:
- Specyfikacja HTML5 zależy od specyfikacji D3E (np. w kontekście zdarzeń myszy, klawiatury lub zogniskowania).
- Specyfikacja D3E zależy od specyfikacji DOM4 (w kontekście bazowych interfejsów zdarzeń).
Pozostałe interfejsy definiowane w specyfikacji D3E tworzą odrębne moduły. Wykaz wszystkich interfejsów oraz zależności między nimi prezentuje poniższa grafika:
Poszczególne typy zdarzeń występujące w specyfikacji D3E pochodzą z tych bazowych interfejsów i muszą dziedziczyć wszystkie właściwości, metody oraz stałe z interfejsów, od których pochodzą. Kolejne typy zdarzeń definiowane w inny specyfikacjach również mogą dziedziczyć z tych bazowych interfejsów lub z nowych interfejsów, które definiują.
Moduły zdarzeń#
Specyfikacja D3E wprowadza pojęcie modułu zdarzeń # (event module). Moduł zdarzeń definiuje kolejne interfejsy (dziedziczące z interfejsów bazowych) oraz wchodzące w ich skład konkretne typy zdarzeń.
Model zdarzeń DOM umożliwia implementacjom DOM wspieranie wielu modułów zdarzeń. Model ten został tak zaprojektowany, aby możliwe było dodawanie nowych modułów zdarzeń w przyszłości. Celem specyfikacji D3E nie jest zdefiniowanie wszystkich możliwych zdarzeń. Dla celów interoperacyjności specyfikacja definiuje jedynie moduł zdarzeń interfejsu użytkownika, z podziałem na zdarzeniami niższego poziomu, które zależą od stosowanego urządzenia.
Istnieje jeszcze moduł ze zdarzeniami zmian, ale obecnie uznawany jest za przestarzały. W razie potrzeby można skorzystać z obserwatorów zmian.