Modelo de objeto de documento - Document Object Model
Publicado pela primeira vez | 1 ° de outubro de 1998 |
---|---|
Última versão | DOM4 19 de novembro de 2015 |
Organização | World Wide Web Consortium , WHATWG |
Padrões básicos |
WHATWG DOM Living Standard W3C DOM4 |
Abreviação | DOM |
O Document Object Model ( DOM ) é uma interface independente de plataforma cruzada e de linguagem que trata um documento XML ou HTML como uma estrutura de árvore em que cada nó é um objeto que representa uma parte do documento. O DOM representa um documento com uma árvore lógica. Cada ramo da árvore termina em um nó e cada nó contém objetos. Os métodos DOM permitem acesso programático à árvore; com eles pode-se mudar a estrutura, estilo ou conteúdo de um documento. Os nós podem ter manipuladores de eventos anexados a eles. Depois que um evento é disparado, os manipuladores de eventos são executados.
A principal padronização do DOM foi realizada pelo World Wide Web Consortium (W3C), que desenvolveu uma recomendação pela última vez em 2004. O WHATWG assumiu o desenvolvimento do padrão, publicando-o como um documento vivo . O W3C agora publica instantâneos estáveis do padrão WHATWG.
História
A história do Document Object Model está entrelaçada com a história da " guerra dos navegadores " no final dos anos 1990 entre o Netscape Navigator e o Microsoft Internet Explorer , bem como com a do JavaScript e JScript , as primeiras linguagens de script a serem amplamente implementadas no Mecanismos de JavaScript de navegadores da web .
O JavaScript foi lançado pela Netscape Communications em 1995 no Netscape Navigator 2.0. O concorrente da Netscape, a Microsoft , lançou o Internet Explorer 3.0 no ano seguinte com uma reimplementação do JavaScript chamada JScript. JavaScript e JScript permitem que os desenvolvedores da web criem páginas da web com interatividade do lado do cliente . Os recursos limitados para detectar eventos gerados pelo usuário e modificar o documento HTML na primeira geração dessas linguagens eventualmente se tornaram conhecidos como "DOM Nível 0" ou "Legacy DOM". Nenhum padrão independente foi desenvolvido para DOM Nível 0, mas foi parcialmente descrito nas especificações para HTML 4 .
O DOM legado era limitado nos tipos de elementos que podiam ser acessados. Os elementos de formulário , link e imagem podem ser referenciados com um nome hierárquico que começa com o objeto de documento raiz. Um nome hierárquico pode fazer uso dos nomes ou do índice sequencial dos elementos percorridos. Por exemplo, um elemento de entrada de formulário pode ser acessado como document.formName.inputName
ou document.forms[0].elements[0]
.
O Legacy DOM habilitou a validação de formulário do lado do cliente e interatividade de interface simples, como a criação de dicas de ferramentas .
Em 1997, a Netscape e a Microsoft lançaram a versão 4.0 do Netscape Navigator e do Internet Explorer respectivamente, adicionando suporte para a funcionalidade Dynamic HTML (DHTML), permitindo alterações em um documento HTML carregado. O DHTML exigia extensões para o objeto de documento rudimentar que estava disponível nas implementações do Legacy DOM. Embora as implementações do Legacy DOM fossem amplamente compatíveis, já que JScript era baseado em JavaScript, as extensões DHTML DOM foram desenvolvidas em paralelo por cada fabricante de navegador e permaneceram incompatíveis. Essas versões do DOM ficaram conhecidas como "DOM intermediário".
Após a padronização do ECMAScript , o W3C DOM Working Group começou a esboçar uma especificação DOM padrão. A especificação completa, conhecida como "DOM Nível 1", tornou-se uma recomendação W3C no final de 1998. Em 2005, grandes partes do W3C DOM eram bem suportadas por navegadores habilitados para ECMAScript comuns, incluindo o Microsoft Internet Explorer versão 6 (de 2001), Navegadores baseados em Opera , Safari e Gecko (como Mozilla , Firefox , SeaMonkey e Camino ).
Padrões
O W3C DOM Working Group publicou sua recomendação final e posteriormente se desfez em 2004. Os esforços de desenvolvimento migraram para o WHATWG , que continua a manter um padrão de vida. Em 2009, o grupo de Aplicativos da Web reorganizou as atividades do DOM no W3C. Em 2013, devido à falta de progresso e ao lançamento iminente do HTML5 , a especificação DOM Nível 4 foi reatribuída ao HTML Working Group para agilizar sua conclusão. Enquanto isso, em 2015, o grupo de Aplicativos da Web foi dissolvido e a administração do DOM passou para o grupo da Plataforma da Web. Começando com a publicação do DOM Nível 4 em 2015, o W3C cria novas recomendações com base em instantâneos do padrão WHATWG.
- O DOM Nível 1 forneceu um modelo completo para um documento HTML ou XML inteiro , incluindo os meios para alterar qualquer parte do documento.
- O DOM Nível 2 foi publicado no final de 2000. Ele introduziu a
getElementById
função, bem como um modelo de evento e suporte para namespaces XML e CSS. - DOM Nível 3, publicado em abril de 2004, adicionou suporte para XPath e manipulação de eventos de teclado , bem como uma interface para serializar documentos como XML.
- DOM Nível 4 foi publicado em 2015. É um instantâneo do padrão de vida WHATWG.
Formulários
Navegadores da web
Para renderizar um documento como uma página HTML, a maioria dos navegadores da web usa um modelo interno semelhante ao DOM . Os nós de cada documento são organizados em uma estrutura de árvore , chamada de árvore DOM , com o nó superior denominado "Objeto de documento". Quando uma página HTML é renderizada em navegadores, o navegador baixa o HTML na memória local e o analisa automaticamente para exibir a página na tela. No entanto, o DOM não precisa necessariamente ser representado como uma árvore, e alguns navegadores usaram outros modelos internos.
JavaScript
Quando uma página da web é carregada, o navegador cria um Document Object Model da página, que é uma representação orientada a objetos de um documento HTML que atua como uma interface entre o JavaScript e o próprio documento. Isso permite a criação de páginas da web dinâmicas , porque dentro de uma página, o JavaScript pode:
- adicionar, alterar e remover qualquer um dos elementos e atributos HTML
- alterar qualquer um dos estilos CSS
- reagir a todos os eventos existentes
- criar novos eventos
Implementações
Como o DOM oferece suporte à navegação em qualquer direção (por exemplo, pai e irmão anterior) e permite modificações arbitrárias, uma implementação deve pelo menos armazenar em buffer o documento que foi lido até agora (ou alguma forma analisada dele).
Mecanismos de layout
Os navegadores da Web contam com mecanismos de layout para analisar HTML em um DOM. Alguns mecanismos de layout, como Trident / MSHTML , estão associados principalmente ou exclusivamente a um navegador específico, como o Internet Explorer. Outros, incluindo Blink , WebKit e Gecko , são compartilhados por vários navegadores, como Google Chrome , Opera , Safari e Firefox . Os diferentes mecanismos de layout implementam os padrões DOM em vários graus de conformidade.
Bibliotecas
Implementações DOM:
- libxml2
- MSXML
- Xerces é uma coleção de implementações DOM escritas em C ++, Java e Perl
- xml.dom para Python
- XML para <SCRIPT> é uma implementação DOM baseada em JavaScript
- PHP.Gt DOM é uma implementação DOM do lado do servidor baseada em libxml2 e traz compatibilidade DOM nível 4 para a linguagem de programação PHP
- Domino é uma implementação de DOM do lado do servidor (Node.js) baseada no dom.js. do Mozilla. Domino é usado na pilha MediaWiki com o Editor Visual.
- SimpleHtmlDom é um modelo de objeto de documento HTML simples em C #, que pode gerar string HTML programaticamente.
APIs que expõem implementações DOM:
- JAXP (Java API para XML Processing) é uma API para acessar provedores DOM
- Lazarus ( Free Pascal IDE) contém duas variantes do DOM - com formato UTF-8 e ANSI
Ferramentas de inspeção:
- DOM Inspector é uma ferramenta de desenvolvedor web
Veja também
Referências
Referências gerais
- Flanagan, David (2006). JavaScript: o guia definitivo . O'Reilly & Associates. pp. 312 –313. ISBN 0-596-10199-6.
- Koch, Peter-Paul (14 de maio de 2001). "O modelo de objeto de documento: uma introdução" . Revista Digital na Web . Arquivado do original em 27 de abril de 2017 . Recuperado em 10 de janeiro de 2009 .
- Le Hégaret, Philippe (2002). "The W3C Document Object Model (DOM)" . Consórcio da World Wide Web . Recuperado em 10 de janeiro de 2009 .
- Guisset, Fabian. "O que cada nível DOM traz?" . Mozilla Developer Center . Projeto Mozilla. Arquivado do original em 2 de março de 2013 . Recuperado em 10 de janeiro de 2009 .
links externos
- DOM Living Standard da WHATWG
- Hub W3C DOM original pelo W3C DOM Working Group (desatualizado)
- Grupo de Trabalho da Plataforma Web (atual administrador do W3C DOM)