DOM(Document Object Model)

DOM(Document Object Model/ドム)とは、HTMLやXMLで書かれた文書を、プログラムから読み書きできるようにツリー(木)構造のデータとして表現する仕組みです。Webブラウザは、HTMLを読み込むとDOMを作り、そのDOMをもとに画面へ表示を行います。

現実世界に例えると、DOMは「本の目次のような階層構造」です。本全体(文書)の中に章があり、章の中に節がある、節の中に段落があるように、DOMではHTML全体の中にタグが入れ子になって階層的に並んでおり、その一つひとつを個別に取り出したり書き換えたりできます。

DOM図解

DOM図解

DOMの仕組み

Webブラウザは、HTMLファイルを読み込むと、その内容を解析して「Document(文書全体)」を頂点に、タグ1つひとつを「Element(要素)」や「Node(ノード)」としてツリー状に組み立てます。JavaScriptなどのプログラムは、このツリーにアクセスすることで、画面の内容を自由に取得・変更できます。

DOMツリーの主な用語

用語 内容
Document DOMツリー全体の頂点にある、文書そのものを表すオブジェクト
Element(要素) <div>や<p>など、HTMLタグ1つひとつに対応する部分
Node(ノード) 要素・文字列・属性など、ツリーを構成する最小単位
Attribute(属性) class=”…”やid=”…”のような、タグに付与された情報

プログラムからの操作例

JavaScriptでは、document.getElementById()やdocument.querySelector()といった命令を使い、DOMツリーの中から特定の要素を取り出すことができます。取り出した要素の文字や見た目を書き換えれば、ページを再読み込みすることなく画面の内容を動的に変更できます。

イベントとの関係

DOMは、単に文書構造を表すだけでなく、クリックやキー入力といった「イベント」を扱う仕組みとしても使われます。ボタン要素に対してイベントを登録しておくことで、ユーザーがクリックした瞬間にプログラムを実行する、といった操作が可能になります。この仕組みはDOMイベントと呼ばれ、Webページを対話的に動かすうえで欠かせない機能です。

DOM操作の課題

DOMを直接何度も操作すると、そのたびにブラウザが画面の再計算・再描画を行うため、更新するデータの量が増えるほど処理が重くなりやすいという課題があります。この課題に対応するために考え出されたのが「仮想DOM」という仕組みで、ReactやVue.jsなどのフレームワークで広く採用されています。

あわせて知っておきたい用語

  • 仮想DOM
    実際のDOMを直接操作せず、変更差分だけを効率よく反映する仕組みです。
  • HTML
    Webページの構造を記述するためのマークアップ言語です。
  • JavaScript
    Webページに動きをつけるためのプログラミング言語です。

コメント

タイトルとURLをコピーしました