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

时间:2011-02-12 04:31:51

标签: html object dom model document

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

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

更具体的问题是:

  1. 目前在哪里使用?
  2. 开发人员使用哪些字段(ex-.NET开发人员)?
  3. 对于所有开发人员来说,了解它的相关程度如何?

6 个答案:

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

其他域名

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

答案 1 :(得分:8)

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

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

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

答案 2 :(得分:5)

我真的不能比Wikipedia Article on DOM

更好地解释它

但回答你的一些问题:

  

我们还在哪里使用它?

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

  

谁使用它,

自九十年代中期以来的每一位网络开发人员。

  

用什么技术?

主要是通过JavaScript访问网页,但几乎任何时候以编程方式访问XML / HTML都会使用某种DOM实现。

  

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

非常,尽管你可能在不知情的情况下使用它。

  

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

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

答案 3 :(得分:1)

  

什么是DOM?

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

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

答案 4 :(得分:0)

浏览器加载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)的所有前端开发人员。

答案 5 :(得分:-1)

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