DOM模型入门手册 |
本文标签:DOM模型 本文向大家描述一下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文档内容的有效低级访问 。 DOM模型的使用非常简单 。你可以随机地访问XML文档,由于整个树都构建在内存中,因此可以通过DOMAPI修改这些节点,例如增加一个子节点或修改、删除一个节点 。 不过,虽然内存树结构提供了很好的导航支持,但仍有一些解析策略问题需要仔细考虑 。首先,整个XML文档必须一次解析完成,不可能只做部分解析;其次是效率问题,在内存中加载整个文档和构建完整树结构的成本很高,尤其当文档非常大的时候 。典型地,DOM树的容量比文档容量要大一个数量级,所以它要消耗大量内存;第三,一般的DOM节点类型在互操作性上有优势,但对于对象类型绑定也许不是最好的 。 |