Obiektowy model dokumentu — Document Object Model

Obiektowy model dokumentu
DOM-model.svg
Przykład hierarchii DOM w dokumencie HTML
Opublikowane po raz pierwszy 1 października 1998 ; 23 lata temu ( 1998-10-01 )
Ostatnia wersja DOM4
19 listopada 2015 ; 5 lat temu ( 19.11.2015 )
Organizacja Konsorcjum World Wide Web , WHATWG
Standardy podstawowe WHATWG DOM Living Standard
W3C DOM4
Skrót DOM

Document Object model ( DOM ) jest cross-platform i niezależny od języka interfejsu, który traktuje XML lub HTML dokument w strukturze drzewa , w którym każdy węzeł stanowi obiekt reprezentujący część dokumentu. DOM reprezentuje dokument z drzewem logicznym. Każda gałąź drzewa kończy się węzłem, a każdy węzeł zawiera obiekty. Metody DOM umożliwiają programowy dostęp do drzewa; za ich pomocą można zmienić strukturę, styl czy treść dokumentu. Węzły mogą mieć dołączone programy obsługi zdarzeń . Po wyzwoleniu zdarzenia procedury obsługi zdarzeń są wykonywane.

Główna standaryzacja DOM była prowadzona przez World Wide Web Consortium (W3C), które ostatnio opracowało rekomendację w 2004 roku. WHATWG przejęło opracowanie standardu, publikując go jako żywy dokument . W3C publikuje teraz stabilne migawki standardu WHATWG.

Historia

Historia Document Object Model jest spleciona z historią " wojen przeglądarek " z końca lat dziewięćdziesiątych między Netscape Navigatorem a Microsoft Internet Explorer , a także z JavaScript i JScript , pierwszymi językami skryptowymi szeroko zaimplementowanymi w silniki JavaScript w przeglądarkach internetowych .

JavaScript został wydany przez Netscape Communications w 1995 roku w Netscape Navigator 2.0. Konkurent Netscape, Microsoft , wypuścił Internet Explorer 3.0 w następnym roku z reimplementacją JavaScriptu o nazwie JScript. JavaScript i JScript umożliwiają programistom internetowym tworzenie stron internetowych z interaktywnością po stronie klienta . Ograniczone możliwości wykrywania zdarzeń generowanych przez użytkowników i modyfikowania dokumentu HTML w pierwszej generacji tych języków w końcu stały się znane jako „DOM Level 0” lub „Legacy DOM”. Nie opracowano żadnego niezależnego standardu dla DOM Level 0, ale został on częściowo opisany w specyfikacji HTML 4 .

Legacy DOM był ograniczony pod względem rodzajów elementów, do których można było uzyskać dostęp. Do elementów formularza , linku i obrazu można odwoływać się za pomocą hierarchicznej nazwy, która zaczynała się od głównego obiektu dokumentu. Nazwa hierarchiczna może korzystać z nazw lub indeksu sekwencyjnego przemierzanych elementów. Na przykład element wejściowy formularza może być dostępny jako albo document.formName.inputNamelub document.forms[0].elements[0].

Starsza wersja DOM umożliwiała weryfikację formularzy po stronie klienta i prostą interaktywność interfejsu, taką jak tworzenie podpowiedzi .

W 1997 r. Netscape i Microsoft wydały odpowiednio wersję 4.0 Netscape Navigator i Internet Explorer, dodając obsługę funkcji Dynamic HTML (DHTML), umożliwiając wprowadzanie zmian w załadowanym dokumencie HTML. DHTML wymagał rozszerzeń podstawowego obiektu dokumentu, który był dostępny w starszych implementacjach DOM. Chociaż implementacje Legacy DOM były w dużej mierze kompatybilne, ponieważ JScript był oparty na JavaScript, rozszerzenia DHTML DOM były opracowywane równolegle przez każdego producenta przeglądarek i pozostały niekompatybilne. Te wersje DOM stały się znane jako „Intermediate DOM”.

Po standaryzacji ECMAScript , Grupa Robocza W3C DOM rozpoczęła opracowywanie standardowej specyfikacji DOM. Ukończona specyfikacja, znana jako „DOM Level 1”, stała się zaleceniem W3C pod koniec 1998 roku. Do 2005 roku duże części W3C DOM były dobrze obsługiwane przez popularne przeglądarki obsługujące ECMAScript, w tym Microsoft Internet Explorer w wersji 6 (od 2001), Przeglądarki oparte na Opera , Safari i Gecko (takie jak Mozilla , Firefox , SeaMonkey i Camino ).

Normy

COTWG DOM

W3C DOM Working Group opublikowała ostateczną rekomendację a następnie rozwiązana w roku 2004. wysiłków na rzecz rozwoju migracji do WHATWG , który nadal utrzymać standard życia. W 2009 roku grupa Web Applications zreorganizowała działalność DOM w W3C. W 2013 r. z powodu braku postępów i zbliżającego się wydania HTML5 specyfikacja DOM Level 4 została przeniesiona do grupy roboczej HTML, aby przyspieszyć jej ukończenie. Tymczasem w 2015 roku grupa Web Applications została rozwiązana, a zarządzanie DOM przekazano grupie Web Platform. Począwszy od publikacji DOM Level 4 w 2015 roku, W3C tworzy nowe rekomendacje na podstawie migawek standardu WHATWG.

  • DOM Level 1 dostarczył kompletny model dla całego dokumentu HTML lub XML , w tym środki do zmiany dowolnej części dokumentu.
  • DOM Level 2 został opublikowany pod koniec 2000 roku. Wprowadzono getElementByIdfunkcję, a także model zdarzeń i obsługę przestrzeni nazw XML i CSS.
  • DOM Level 3, opublikowany w kwietniu 2004, dodał obsługę XPath i obsługi zdarzeń klawiatury , a także interfejs do serializacji dokumentów w formacie XML.
  • DOM Level 4 został opublikowany w 2015 roku. Jest to migawka standardu życia WHATWG.

Aplikacje

Przeglądarki internetowe

Do renderowania dokumentu, takiego jak strona HTML, większość przeglądarek internetowych używa wewnętrznego modelu podobnego do modelu DOM . Węzły każdego dokumentu są zorganizowane w strukturę drzewa , nazywaną drzewem DOM , z najwyższym węzłem nazwanym "Obiekt dokumentu". Gdy strona HTML jest renderowana w przeglądarkach, przeglądarka pobiera kod HTML do pamięci lokalnej i automatycznie analizuje go, aby wyświetlić stronę na ekranie. Jednak DOM niekoniecznie musi być reprezentowany jako drzewo, a niektóre przeglądarki używają innych modeli wewnętrznych.

JavaScript

Po załadowaniu strony internetowej przeglądarka tworzy obiektowy model dokumentu strony, który jest zorientowaną obiektowo reprezentacją dokumentu HTML, która działa jako interfejs między JavaScript a samym dokumentem. Pozwala to na tworzenie dynamicznych stron internetowych , ponieważ na stronie JavaScript może:

  • dodawać, zmieniać i usuwać dowolne elementy i atrybuty HTML
  • zmienić dowolny styl CSS
  • reagować na wszystkie zaistniałe wydarzenia
  • tworzyć nowe wydarzenia

Realizacje

Ponieważ DOM obsługuje nawigację w dowolnym kierunku (np. rodzic i poprzednie rodzeństwo) i pozwala na dowolne modyfikacje, implementacja musi przynajmniej buforować dokument, który był do tej pory czytany (lub jego przeanalizowaną formę).

Silniki układu

Przeglądarki internetowe opierają się na silnikach układu do przetwarzania kodu HTML na DOM. Niektóre aparaty układu, takie jak Trident/MSHTML , są skojarzone przede wszystkim lub wyłącznie z określoną przeglądarką, taką jak Internet Explorer. Inne, w tym Blink , WebKit i Gecko , są udostępniane przez wiele przeglądarek, takich jak Google Chrome , Opera , Safari i Firefox . Różne silniki układu implementują standardy DOM w różnym stopniu zgodności.

Biblioteki

Implementacje DOM:

  • libxml2
  • MSXML
  • Xerces to zbiór implementacji DOM napisanych w C++, Javie i Perl
  • xml.dom dla Pythona
  • XML dla <SCRIPT> to implementacja DOM oparta na JavaScript
  • PHP.Gt DOM to implementacja DOM po stronie serwera oparta na libxml2 i zapewnia zgodność DOM poziomu 4 z językiem programowania PHP
  • Domino to implementacja DOM po stronie serwera (Node.js) oparta na dom.js Mozilli. Domino jest używany w stosie MediaWiki z edytorem wizualnym.
  • SimpleHtmlDom to prosty model obiektowy dokumentu HTML w języku C#, który może programowo generować ciąg znaków HTML.

API, które udostępniają implementacje DOM:

  • JAXP (Java API for XML Processing) to API umożliwiające dostęp do dostawców DOM
  • Lazarus ( Free Pascal IDE) zawiera dwa warianty DOM - z formatem UTF-8 i ANSI

Narzędzia kontrolne:

Zobacz też

Bibliografia

Ogólne odniesienia

Zewnętrzne linki