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