DOM模型入门手册

开发 前端
DOM是DocumentObjectModel的简称,中文名称为文档对象模型。它的主要作用是建立网页与Script或程序语言沟通的桥梁。

本文向大家描述一下DOM模型的概念,DOM是DocumentObjectModel的简称,自从W3C建立了DOM标准(W3CDOM)之后,以及DOM和浏览器兼容之后,DOM在实际应用中越来越广泛。

DOM模型概述

自从W3C建立了DOM标准(W3CDOM)之后,以及DOM和浏览器兼容之后,DOM在实际应用中越来越广泛。DOM是DocumentObjectModel的简称,中文名称为文档对象模型。它的主要作用是建立网页与Script或程序语言沟通的桥梁。

我们平时可操作及建立文件的属性、方法及事件都以并且用“对象”来展现(例如,document就代表“文件本身”这个对象,table对象则代表HTML的表格对象等等)。这些对象可以由当今大多数的浏览器以Script来取用。

DOM模型常用来和JavaScript交互,也就是说程序以JavaScript写成,但使用DOM来存取页面及其元素。它们两者之间的结合非常紧密,甚至可以说如果没有DOM,我们在使用javascript的时候是不可想象的,因为我们每解析一个节点一个元素都要耗费很多精力,DOM本身是设计为一种独立的程序语言,以一致的API存取文件的结构表述;当然除了JavaScript,DOM可还可以与任何程序语言共同运作,如C/C++、VB、VBS。

在和JavaScript进行交互的时候,DOM模型主要用来解析XML文档,当你的应用程序需要不断地导航、修改文档或随机地一次访问整个文档时,我们一般就使用DOM来解析。

在使用DOM进行解析的时候,它在内存中构建起一棵完整的解析树,借此实现对整个XML文档的全面、动态访问。也就是说,它的解析是有层次的,即将所有的html中的元素都解析成树上层次分明的节点,然后我们可以对这些节点进行增删改查等操作,这是对DOM模型的作用的最完善的总结。

和SAX不同,SAX是顺序解析的,与DOM相比,SAX解析器能提供更好的性能优势,它提供对XML文档内容的有效低级访问。
SAX模型***的优点是内存消耗小,因为整个文档无需一次加载到内存中,这使SAX解析器可以解析大于系统内存的文档。另外,你无需像在DOM中那样为所有节点创建对象。***,SAX“推”模型可用于广播环境,能够同时注册多个ContentHandler,并行接收事件,而不是在一个管道中一个接一个地进行处理。但是SAX的一些缺点使它的流行性不如DOM。

DOM模型的使用非常简单。你可以随机地访问XML文档,由于整个树都构建在内存中,因此可以通过DOMAPI修改这些节点,例如增加一个子节点或修改、删除一个节点。

不过,虽然内存树结构提供了很好的导航支持,但仍有一些解析策略问题需要仔细考虑。首先,整个XML文档必须一次解析完成,不可能只做部分解析;其次是效率问题,在内存中加载整个文档和构建完整树结构的成本很高,尤其当文档非常大的时候。典型地,DOM树的容量比文档容量要大一个数量级,所以它要消耗大量内存;第三,一般的DOM节点类型在互操作性上有优势,但对于对象类型绑定也许不是***的。
 

【编辑推荐】

  1. JavaScript DOM特性与应用详解
  2. HTML DOM入门级知识手册
  3. HTML DOM display属性语法实例解析
  4. 深入了解JavaScript HTML DOM对象
  5. 术语汇编 Javascript DOM技术探究

 

 

责任编辑:佚名 来源: cnblogs.com
相关推荐

2010-09-28 14:08:28

DOM

2010-09-13 13:58:17

HTML DOM

2009-09-10 17:44:36

DOM模型INQ模型

2010-09-28 10:44:30

HTML DOM参考手

2010-09-28 10:40:32

HTML DOM

2010-08-31 08:59:06

marginHTML

2010-06-13 14:01:50

UML学习入门

2010-06-08 16:23:22

UML教程

2009-09-25 13:48:17

Hibernate i

2010-09-09 13:40:19

XML DOM

2010-09-28 13:24:34

DOM文档对象模型

2010-09-28 09:22:34

DOM模型Html

2010-09-28 09:43:37

DOM文档对象模型

2010-09-28 10:03:15

DOM文档对象模型

2012-04-26 08:29:22

DOM

2010-07-20 13:19:16

Perl入门手册

2009-09-24 15:03:30

Hibernate配置

2010-09-28 11:03:19

XML DOM

2009-02-10 09:23:03

DOM模型MSXML

2010-07-16 17:23:57

Perl面向对象编程
点赞
收藏

51CTO技术栈公众号