DHTML:イベント・インターフェース  編集:2017.06.28 20:55 by T.A.
MS

MutationEventインターフェース

廃止予定
 この機能はWeb標準から削除されました。まだ一部のブラウザでサポートされている場合もありますが、それは落とされる過程にある。可能であれば、それを使用したり、既存のコードを更新したりしないでください。このページの下部にある互換性表を参照して決定を導きます。この機能はいつでも機能しなくなる可能性があることに注意してください。
 ドキュメント・オブジェクト・モデル(DOM)階層ノードの変更に固有のイベントのプロパティを提供します。

Note: 突然変異イベント(W3C DOMレベル3イベント)は、変異オブザーバー(W3C DOM4)を支持して非難されました。
序文
 突然変異イベントは、DOM Events仕様で非推奨とマークされていますが、APIの設計に欠陥があるため(「DOM突然変異イベントの置き換え:→パブリック・ウェブ・アプリケーションへの投稿」を参照)。

 突然変異観察者は、DOM4の突然変異イベントの代替候補である。それらはFirefox 14とChrome18に含まれる予定です。

 変異イベントを避けるための実際的な理由は、パフォーマンスの問題とクロスブラウザのサポートです。
業績
 DOM mutationリスナーをドキュメントに追加すると、そのドキュメントに対するDOM変更のパフォーマンスが大幅に低下します(それらを1.5〜7倍遅くする!)。さらに、リスナーを削除してもダメージは元に戻りません。

 業績効果は、突然変異イベント・リスナーを持つ文書に限定されます。
クロス・ブラウザー・サポート
 これらのイベントは、さまざまなブラウザ間で一貫して実装されていません:

 Dottoro→突然変異イベントのためのブラウザー・サポート
突然変異イベント一覧
 以下はすべての突然変異事象のリストであり、DOMレベル3イベント仕様で定義されているとおり:
使用法
 次のように、element.addEventListenerを使用して、突然変異イベントのリスナーを登録できます:
element.addEventListener("DOMNodeInserted", function (ev) { // ... }, false);
 ほとんどのイベントでは、イベントオブジェクトはMutationEvent(→仕様におけるその定義)のリスナーに渡され、DOMAttributeNameChangedおよびDOMElementNameChangedの場合はMutationNameEventです。