「イベントモデルの概念と用語法が混乱しているので、イライライするんですが」が随分長くなったので、その要点を箇条書きにまとめておきます。
- Javaイベントモデルにおけるイベントソースを、DOMイベントモデルではイベントターゲットと呼ぶ。
- DOMツリー内をイベントが伝搬する運動過程をイベントフローと呼ぶ。
- イベントフローのときに通過するノードの列をチェインと呼ぶ。チェインの両端は、ルートノードとイベントターゲット・ノードである。
- イベントフローは、キャプチャリング・フェイズ、ターゲット・フェイズ、バブリング・フェイズの3つの部分に分けられる。
- イベントフローのチェインに含まれるノードは、EventTargetインターフェースを実装する必要がある。
- 「イベントフローの折り返し点=チェインの端点」であるイベントターゲットと、EventTargetインターフェースおよびEventTargetを実装したノードは、異なる概念である。
- XMLイベント仕様では、チェインに含まれるノードをオブザーバーと呼ぶ。
- このオブザーバーは、デザインパターンのObserverパターンにおけるObserverではない。Subjectのことである。
- DOMイベント仕様では、イベントリスナーとイベントハンドラーの区別は曖昧で、ほぼ同義語である。
- XMLイベント仕様では、イベントハンドラー、イベントタイプ、オブザーバー・ノードの3者間の束縛(binding)をリスナーと呼ぶ。
- Javaイベントモデルにおけるリスナーは、関連するイベントハンドラーの集まりのことである。
- JavaScriptやActionScriptにおけるEventListenerインターフェースの実装は、1つの関数(クロージャ)である。
- DOMのイベントがチェイン内のノードを通過(出現ともいう)するとき、そのイベントがノードに登録されたハンドラーの実行を引き起こすことを「トリガーする」という。
- ディスパッチとは、イベントフローによる伝搬と、各ノードにおけるトリガーの両方を含む全行程を実行させることである。
- DOMのイベントはイベントタイプを持つが、それは文字列で表現される名前である。
- インターフェースの継承により実現される、イベントの型階層(型システムとしての順序構造)も存在する。同じ型(型システムの型)のイベントを細分するためにイベントタイプ(名前)が使われる。