DOM是语言中中立的API,用于访问和操作HTML和XML文件。DOM1级将HTML和XML文档形象地看作是一个层次化的节点树,可以使用Javascript来操作这个节点树,进而改变底层文档的外观和结构。
DOM又各种节点构成,总结如下:
最基本的节点类型是Node
用于抽象地表示文档中一个独立地部分,所有其他类型都继承自Node。Document类型
表示整个文档,是一组分层节点地根节点。在Javascript中,document对象是Document地一个实例。使用document对象,有很多种方式可以查询和取得节点。Element节点
表示文档中的所有HTML或XML元素,可以用来操作这些元素的内容和特性。另外还有一些节点类型,分别表示文本内容、注释、文档类型,CDATA区域和文档。
访问DOM的操作在多数情况下都很直观,不过在处理
<script>、<style>
元素时还是存在一些复杂性。由于这两个元素分别包含脚本和样式信息,因此浏览器通常会将它们与其他元素区别对待。这些区别对待导致了在针对这些元素使用innerHTML时,以及在创建新元素时的一些问题。理解DOM的关键,就是理解DOM对性能的影响。DOM操作往往是Javascript程序中开销最大的部分。因而访问NodeList导致的问题最多。NodeList对象都是“动态的”,这意味这每次访问NodeList对象,都会执行一次查询。
有鉴于此,最好的办法就是尽量减少DOM操作。