什么是DOM? (总结和重要性)

问题描述 投票:26回答:6

什么是文档对象模型(DOM)?

我问这个问题是因为我主要在.NET工作而且我的经验有限,但我经常听到更有经验的开发人员谈论/提及它。我在线阅读教程,但我无法理解整体情况。我知道这是一个API!

更具体的问题是:

  1. 它目前在哪里使用?
  2. 哪些开发人员使用它(ex-.NET开发人员)?
  3. 对于所有开发人员来说,了解它的相关性如何?
html object dom model document
6个回答
13
投票

一般而言,DOM是结构化文档的模型。 它是当今IT的核心概念,没有开发人员可以选择退出DOM。无论是在.net,HTML,XML还是其他使用它的域中。 它适用于所有文档(word文档,HTML页面,XML文件等)。在开发人员领域,它主要应用于HTML和XML域,其含义略有不同。

HTML

在HTML领域,DOM被引入以支持在90年代后期称为“动态HTML”的革命。在IE4和Netscape 4.0之前,HTML文档在浏览器中无法更改(在这些远程时间用于编写网页的所有内容都是“动画GIF”!!!!而HTML是版本3.2)。 因此,在浏览器内动态操作服务器发送的文件是一场巨大的革命,并开始向我们今天看到的有吸引力的网站迈进。

Netscape已经引入了Javascript(受洗的javascript以便在新的Java趋势上冲浪,但无关)并且得到了Netscape HTTP服务器和Netscape浏览器的支持,Internet Explorer热切关注浏览器内部的移动。但是,当使用javascript来操作文档的内容时,您需要一种简单的方法来指定要与之交互的文档部分。这就是DOM的用武之地。虽然HTML 4不是“格式良好”,但是浏览器构建了一个页面的内部表示,其顶部是“body”元素,下面是大量的html标签,在一个分层组织中(子节点,父节点)节点属性等)。 DOM是支持API的模型,允许导航此层次结构。

由于Netscape和IE浏览器都是竞争解决方案,因此NS和IE DOM几乎没有机会融合。 W3C介入允许较小的浏览器供应商参加竞争,并努力标准化DOM。因此W3C DOM。所有这一切只是为了引入另一种方言,并且每个人都知道需要多年和两个严重的竞争对手才能迫使MS遵守这些标准。

尽管更多现代导航技术(如JQuery)具有DOM的简写符号,但它们内部依赖于DOM。

XML

HTML明显显示了对文档“格式良好”表现出宽容的缺点,这引发了一种新的热潮:XML。在Web领域,IE5首先支持XML和XSLT,并且在更多领域中采用而不仅仅是显示页面。 要解析XML,主要是在Java Word中,你将开发一个SAX解析器,它基本上是一个SAX引擎的插件,你可以在其中描述引擎应该在它将遇到的所有XML事件(标签......)中应该做什么。解析文件。开发SAX解析器并不简单,但是占用空间小。 但是,您必须为每种新文档类型开发一个特定的... 因此,不久之后,库开始出现解析任何文档并构建其层次结构的内存映射。因为它也具有root,parent和children(通过HTML继承自SGML)的相同概念,所以它也被称为DOM,无论库如何,名称都适用。

其他领域

DOM的概念不限于甚至是针对HTML或XML发明的。 DOM是适用于任何文档的一般概念,尤其是那些(绝大多数都是这样)的文档,它们显示了您需要导航的层次结构。您可以谈论MS-Word文档的DOM,也可以使用API​​来浏览这些文档。


8
投票

DOM是用于定义明确的HTML和XML结构的应用程序编程接口(根据W3C's document)。它用于与网页元素交互的任何地方(任何元素 - 样式,文本,属性等)。您将通过JavaScript和/或JavaScript库听到很多关于DOM的信息,例如jQuery(当然,它是JavaScript)。它还引用了Java,ECMAScript,JScript和VBScript。

如果您正在编程.NET,那么如果您正在进行基于Web的工作,这一点非常重要。如果您正在进行应用程序编程,那就不那么重要了。 DOM绝对不是过去 - 它被许多开发人员每天使用和工作。话虽如此,已经开始致力于跨Web浏览器标准化DOM。 (同样,库可以帮助隐藏这些差异。这是jQuery如此受欢迎的一个原因。您不必担心浏览器细节 - 您只需执行您需要执行的操作。)

我上面链接的文件可以很好地回答您的所有问题以及更多问题。我强烈建议阅读它。如果您还有其他问题,还可以查看以下链接:


5
投票

我真的不能解释它比Wikipedia Article on DOM更好

但要回答几个问题:

我们还在哪里使用它?

自九十年代中期以来的每一个网络浏览器。

谁使用它,

自九十年代中期以来的每个Web开发人员。

在什么技术?

主要是通过JavaScript的网络,但几乎在您以编程方式访问XML / HTML时,您正在使用某种DOM实现。

对.net运营商中的任何人来说有多重要? [原文如此]

非常,虽然您可能在不知情的情况下使用它。

这只是过去的事情,它被大量使用但有问题吗?

如果是的话,那么有人需要告诉John Resig,他已经浪费了他过去3年的生命。


1
投票

什么是DOM?

文档对象模型(DOM)是用于HTML和XML文档的编程API。它定义了文档的逻辑结构以及文档的访问和操作方式。由w3财团定义的标准。

资料来源:http://www.w3.org/TR/WD-DOM/introduction.html


1
投票

当浏览器加载HTML页面时,它会将其转换为Document Object Model(DOM)。

浏览器生成的HTML DOM构建为一个树,它包含所有HTML页面元素作为对象。例如,假设您在浏览器上的HTML页面下加载:

<!DOCTYPE html>
<html>
    <head>
        <title>website title</title>
    </head>
    <body>
        <p id="js_paragraphId">I'm a paragraph</p>
        <a href="http://somewebsite.com">some website</a>
    </body>
</html>

加载后,浏览器将其转换为:

HTML DOM

HTML DOM上的脚本语言的一些功能包括:

1-更改页面中的所有HTML元素。

2-更改页面中的所有HTML属性。

3-更改页面上的所有CSS样式。

4-删除现有的HTML元素和属性。

5-添加新的HTML元素和属性。

6-对页面中的所有现有HTML事件做出反应。

7-在页面上创建新的HTML事件。

让我们回到你的问题:

1-它目前在所有现代浏览器中使用。

2-前端开发人员。

3-所有使用脚本语言(尤其是JavaScript)的前端开发人员。


-2
投票

DOM只是input-html和output-html之间的运行时接口.Html只能显示标签。 DOM用于操纵标签。例如,没有DOM,javascript中的getelementbyid将无法运行。

© www.soinside.com 2019 - 2024. All rights reserved.