Obiektowy model dokumentu — Document Object Model
Opublikowane po raz pierwszy | 1 października 1998 |
---|---|
Ostatnia wersja | DOM4 19 listopada 2015 |
Organizacja | Konsorcjum World Wide Web , WHATWG |
Standardy podstawowe |
WHATWG DOM Living Standard W3C DOM4 |
Skrót | DOM |
HTML |
---|
Porównania |
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.inputName
lub 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
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
getElementById
funkcję, 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:
- DOM Inspector to narzędzie do tworzenia stron internetowych
Zobacz też
Bibliografia
Ogólne odniesienia
- Flanagan, David (2006). JavaScript: ostateczny przewodnik . O'Reilly & Associates. s. 312 -313. Numer ISBN 0-596-10199-6.
- Koch, Peter-Paul (14 maja 2001). „Obiektowy model dokumentu: wprowadzenie” . Cyfrowy magazyn internetowy . Zarchiwizowane z oryginału w dniu 27 kwietnia 2017 r . Źródło 10 stycznia 2009 .
- Le Hégaret, Filip (2002). „Model obiektowy dokumentu W3C (DOM)” . Konsorcjum World Wide Web . Źródło 10 stycznia 2009 .
- Guisset, Fabian. „Co przynosi każdy poziom DOM?” . Centrum programistów Mozilli . Projekt Mozilli. Zarchiwizowane z oryginału 2 marca 2013 r . Źródło 10 stycznia 2009 .
Zewnętrzne linki
- DOM Living Standard od WHATWG
- Oryginalny hub W3C DOM grupy roboczej W3C DOM (nieaktualny)
- Grupa Robocza Platformy Internetowej (obecny zarządca W3C DOM)