[6] [[DOM3]] の[DFN[[RUBYB[[[利用者データ]]]@en[user data]]]]は、
任意の[[節点]]に[[アプリケーション]]の[[開発者]]が任意のデータを保持させることができる機能でした。

[7] [[W3C勧告]]の [[DOM水準3中核]]で規定されていましたが、
誰も使わなかったため、現在の [[DOM Standard]] では廃止されています。

* 機能

[8] [CODE(DOMi)@en[Node]] [[インターフェイス]]の [DFN[[CODE(DOMm)@en[getUserData]]]] 
[[メソッド]]で任意の値を登録でき、 [DFN[[CODE(DOMm)@en[setUserData]]]]
[[メソッド]]で登録している値を取得できました。

[9] 更に、値と共に [DFN[[CODE(DOMi)@en[UserDataHandler]]]] を登録できました。
これは、[[節点]]の操作が発生した際に実行される[[コールバック関数]]でした。

[10] [[W3C DOM]] の他の機能同様、動作の概略しか規定されておらず、
詳細な動作の規定は含まれていませんでした。例えば [[GC]] との関係や、
[CODE(DOMi)@en[UserDataHandler]] の実行の正確なタイミングなどは一切不明でした。

[11] 元々 [[JavaScript]] の[[オブジェクト]]には任意の[[特性]]を追加可能ですから
([[expando]] 参照)、 [[Web開発者]]にとってはこのような新機能はほとんど不要で、
([[DOM3]] の設計に大きな影響を与えた) [[Java]] での利用の便宜をはかる目的だったと思われます。

[12] [CODE(DOMi)@en[UserDataHandler]] の機能の一部は、[[カスタム要素反応]]として別の形で一部“復活”しています。

* 歴史

[1] [CITE@en-US[UserDataHandler - Web API Interfaces | MDN]]
( ([TIME[2013-11-13 08:25:48 +09:00]] 版))
<https://developer.mozilla.org/en-US/docs/Web/API/UserDataHandler>

[2] [CITE@en[550400 – Fire UserDataHandler for removed nodes]]
( ([TIME[2014-03-09 03:05:08 +09:00]] 版))
<https://bugzilla.mozilla.org/show_bug.cgi?id=550400>

[3] [CITE@en[337541 – Fire UserDataHandlers for dying nodes asynchronously]]
( ([TIME[2014-03-09 03:06:43 +09:00]] 版))
<https://bugzilla.mozilla.org/show_bug.cgi?id=337541>

[4] [CITE@en[324871 – UserData can cause reference cycles]]
( ([TIME[2014-03-09 03:08:03 +09:00]] 版))
<https://bugzilla.mozilla.org/show_bug.cgi?id=324871>

[5] [[manakai Predefined User Data Names]]