Le Document Object Model (DOM) est une interface essentielle qui permet aux développeurs d'interagir avec des documents Web à l'aide de langages de script tels que JavaScript. Il représente une vue structurée, hiérarchique et logique du contenu d'un document Web, tel que HTML ou XML, sous la forme d'une structure arborescente.
La genèse du modèle objet de document (DOM)
Le concept de DOM est apparu pour la première fois entre le milieu et la fin des années 1990 en raison de la nécessité de permettre un contenu Web plus interactif. Avec l’avènement des sites Web dynamiques et l’utilisation généralisée de JavaScript, il était nécessaire de disposer d’un modèle permettant aux scripts de modifier la structure, le style et le contenu du document. Le World Wide Web Consortium (W3C) s'est chargé de créer une API standardisée à cet effet, ce qui a abouti au développement du DOM.
Le premier niveau DOM standard, DOM niveau 1, a été introduit par le W3C en 1998. Il fournissait un modèle complet pour l'intégralité d'un document HTML ou XML, comprenant les moyens de modifier n'importe quelle partie du document.
Extension du modèle objet de document (DOM)
Le DOM est essentiellement une plate-forme et une interface neutre en termes de langage qui permet aux programmes et aux scripts d'accéder et de mettre à jour dynamiquement le contenu, la structure et le style d'un document.
Le DOM est organisé en une hiérarchie de nœuds, chacun représentant une partie du document, telle que des éléments, des attributs et du texte. Cette arborescence logique facilite la navigation et la manipulation du contenu du document.
Un document Web est modélisé comme une arborescence d'objets qui ont tous des propriétés et des méthodes et peuvent contenir d'autres objets. Par exemple, un document HTML est transformé en objets représentant des éléments tels que « body », « div », « span » et « p », ainsi que leurs attributs et leur contenu textuel.
Comment fonctionne le modèle objet de document (DOM)
La structure interne du DOM est organisée comme une arborescence de nœuds. Le nœud le plus élevé est le Document
nœud, qui représente l’intégralité du document. En dessous, le Element
les nœuds correspondent aux éléments HTML de la page, Attribute
les nœuds contiennent les attributs des éléments, et Text
les nœuds contiennent le contenu textuel des éléments.
Cette structure hiérarchique permet aux développeurs de parcourir l'arborescence du document et d'utiliser les méthodes API pour sélectionner, créer, modifier ou supprimer des nœuds.
Voici un exemple de l'apparence d'un document HTML sous forme d'arborescence DOM :
mathématiqueDocument
↳ Element: html
↳ Element: head
↳ Element: title
↳ Text: "Title of the Document"
↳ Element: body
↳ Element: h1
↳ Text: "Hello, world!"
↳ Element: p
↳ Text: "This is a paragraph."
Principales fonctionnalités du modèle objet de document (DOM)
-
Structure arborescente: Le DOM représente un document dans une structure arborescente logique, ce qui rend la navigation, la sélection et la manipulation simples et intuitives.
-
Langue neutre: Le DOM n'est lié à aucun langage de programmation particulier. Il s'agit d'une convention pour représenter et interagir avec des objets au format HTML, XML et d'autres types de documents.
-
Accès dynamique et mise à jour: Le DOM permet aux programmes d'accéder et de mettre à jour dynamiquement le contenu, la structure et le style d'un document.
-
Standardisé: Le DOM est une norme du W3C, garantissant son acceptation généralisée et sa compatibilité sur différents navigateurs et plates-formes.
Types de modèle objet de document (DOM)
La spécification DOM est divisée en plusieurs « niveaux » et « modules », chacun ajoutant des caractéristiques et des fonctionnalités au précédent. Les types de clés incluent :
Niveau/Type DOM | Brève description |
---|---|
DOM niveau 1 | Fourni un modèle de base pour des documents HTML ou XML entiers, y compris des méthodes pour manipuler les éléments et leurs attributs. |
DOM niveau 2 | Introduction de fonctionnalités telles que la gestion des espaces de noms, un module de style prenant en charge CSS et plusieurs nouvelles interfaces pour gérer les tables, les événements, etc. |
DOM niveau 3 | Ajout de la prise en charge de XPath et de la gestion des événements clavier, introduction d'interfaces pour le chargement et l'enregistrement de documents. |
DOM niveau 4 | Simplification du DOM de base en réduisant les dépendances, introduction de promesses pour les opérations asynchrones et ajout de fonctionnalités supplémentaires telles que des fonctionnalités parentales pour une manipulation plus facile des nœuds. |
Utilisation du modèle objet de document (DOM)
Le DOM est utilisé chaque fois qu'une page Web est manipulée à l'aide de JavaScript. Il s'agit de l'API fondamentale pour de nombreuses technologies Web.
Les développeurs utilisent le DOM pour modifier dynamiquement l'apparence, la convivialité et le contenu d'une page Web sans nécessiter un rechargement complet de la page, permettant ainsi des interfaces utilisateur interactives et réactives.
Malgré sa puissance, le DOM n’est pas sans problèmes. Il peut devenir lent s'il n'est pas utilisé avec précaution, en particulier avec des documents Web volumineux ou complexes. Une manipulation DOM mal optimisée peut entraîner un rendu lent des pages et des interfaces qui ne répondent pas. Pour résoudre ce problème, les développeurs utilisent souvent des bibliothèques ou des frameworks comme jQuery, React ou Vue.js, qui offrent des API de niveau supérieur pour une manipulation efficace du DOM.
Caractéristiques du DOM et comparaison avec des termes similaires
Terme | Description | Comparaison |
---|---|---|
DOMAINE | Une API pour les documents HTML et XML, fournissant une représentation structurelle du document et permettant aux développeurs de manipuler son contenu et sa présentation visuelle. | |
CSSOM | Le modèle d'objet CSS (CSSOM) est une carte de styles CSS, similaire au DOM mais spécifiquement pour CSS. Il permet la manipulation des feuilles de style et des styles appliqués au DOM. | Alors que DOM se concentre sur la structure du document, CSSOM se concentre sur la couche de présentation. |
Ombre DOM | Un mécanisme pour encapsuler des parties d'une arborescence DOM pour l'implémentation de composants Web. Il isole des parties du DOM pour les « cacher » de l’arborescence principale des documents. | Contrairement au DOM classique, Shadow DOM fournit une encapsulation de style et de comportement. |
Perspectives futures liées au modèle objet de document (DOM)
À mesure que les technologies Web continuent d'évoluer, l'API DOM est également susceptible de se développer et de s'améliorer. Les développements futurs potentiels incluent des méthodes plus efficaces de manipulation du DOM, une intégration améliorée avec les normes Web émergentes et l'évolution continue de la spécification HTML elle-même.
Un développement intéressant en cours est l’adoption progressive des composants Web, qui permettent la création de balises HTML encapsulées et réutilisables. Ceci est étroitement lié au Shadow DOM, qui fournit une méthode d'encapsulation des éléments DOM.
Modèle objet de document (DOM) et serveurs proxy
Un serveur proxy est un intermédiaire qui transmet les requêtes et les réponses entre un client et un serveur. Alors que le DOM s'occupe principalement de la structure et de la manipulation des documents Web côté client, les serveurs proxy fonctionnent au niveau du réseau.
Cependant, l'intersection des deux peut être trouvée dans des scénarios dans lesquels un serveur proxy peut modifier le contenu d'un document Web. Par exemple, un serveur proxy peut ajouter, supprimer ou modifier des éléments DOM dans une page Web avant qu'elle n'atteigne le client. Cela peut être utilisé pour diverses raisons, telles que l'injection de scripts, la suppression d'éléments indésirables ou la modification de contenu à des fins de localisation ou de personnalisation.
Liens connexes
- MDN Web Docs : Modèle d'objet de document (DOM)
- Norme DOM W3C
- Informations JavaScript : le DOM
- Principes de base de Google Web : comment fonctionnent les navigateurs
Cet aperçu doit fournir une compréhension complète du modèle objet de document (DOM), de son origine, de son fonctionnement, de ses caractéristiques et de la façon dont il est susceptible d'évoluer. Le DOM reste la pierre angulaire du développement Web interactif et continuera à jouer un rôle essentiel à mesure que les technologies Web progressent.