DOM模型入門手冊(cè)
本文向大家描述一下DOM模型的概念,DOM是DocumentObjectModel的簡(jiǎn)稱,自從W3C建立了DOM標(biāo)準(zhǔn)(W3CDOM)之后,以及DOM和瀏覽器兼容之后,DOM在實(shí)際應(yīng)用中越來越廣泛。
DOM模型概述
自從W3C建立了DOM標(biāo)準(zhǔn)(W3CDOM)之后,以及DOM和瀏覽器兼容之后,DOM在實(shí)際應(yīng)用中越來越廣泛。DOM是DocumentObjectModel的簡(jiǎn)稱,中文名稱為文檔對(duì)象模型。它的主要作用是建立網(wǎng)頁(yè)與Script或程序語言溝通的橋梁。
我們平時(shí)可操作及建立文件的屬性、方法及事件都以并且用“對(duì)象”來展現(xiàn)(例如,document就代表“文件本身”這個(gè)對(duì)象,table對(duì)象則代表HTML的表格對(duì)象等等)。這些對(duì)象可以由當(dāng)今大多數(shù)的瀏覽器以Script來取用。
DOM模型常用來和JavaScript交互,也就是說程序以JavaScript寫成,但使用DOM來存取頁(yè)面及其元素。它們兩者之間的結(jié)合非常緊密,甚至可以說如果沒有DOM,我們?cè)谑褂胘avascript的時(shí)候是不可想象的,因?yàn)槲覀兠拷馕鲆粋€(gè)節(jié)點(diǎn)一個(gè)元素都要耗費(fèi)很多精力,DOM本身是設(shè)計(jì)為一種獨(dú)立的程序語言,以一致的API存取文件的結(jié)構(gòu)表述;當(dāng)然除了JavaScript,DOM可還可以與任何程序語言共同運(yùn)作,如C/C++、VB、VBS。
在和JavaScript進(jìn)行交互的時(shí)候,DOM模型主要用來解析XML文檔,當(dāng)你的應(yīng)用程序需要不斷地導(dǎo)航、修改文檔或隨機(jī)地一次訪問整個(gè)文檔時(shí),我們一般就使用DOM來解析。
在使用DOM進(jìn)行解析的時(shí)候,它在內(nèi)存中構(gòu)建起一棵完整的解析樹,借此實(shí)現(xiàn)對(duì)整個(gè)XML文檔的全面、動(dòng)態(tài)訪問。也就是說,它的解析是有層次的,即將所有的html中的元素都解析成樹上層次分明的節(jié)點(diǎn),然后我們可以對(duì)這些節(jié)點(diǎn)進(jìn)行增刪改查等操作,這是對(duì)DOM模型的作用的最完善的總結(jié)。
和SAX不同,SAX是順序解析的,與DOM相比,SAX解析器能提供更好的性能優(yōu)勢(shì),它提供對(duì)XML文檔內(nèi)容的有效低級(jí)訪問。
SAX模型***的優(yōu)點(diǎn)是內(nèi)存消耗小,因?yàn)檎麄€(gè)文檔無需一次加載到內(nèi)存中,這使SAX解析器可以解析大于系統(tǒng)內(nèi)存的文檔。另外,你無需像在DOM中那樣為所有節(jié)點(diǎn)創(chuàng)建對(duì)象。***,SAX“推”模型可用于廣播環(huán)境,能夠同時(shí)注冊(cè)多個(gè)ContentHandler,并行接收事件,而不是在一個(gè)管道中一個(gè)接一個(gè)地進(jìn)行處理。但是SAX的一些缺點(diǎn)使它的流行性不如DOM。
DOM模型的使用非常簡(jiǎn)單。你可以隨機(jī)地訪問XML文檔,由于整個(gè)樹都構(gòu)建在內(nèi)存中,因此可以通過DOMAPI修改這些節(jié)點(diǎn),例如增加一個(gè)子節(jié)點(diǎn)或修改、刪除一個(gè)節(jié)點(diǎn)。
不過,雖然內(nèi)存樹結(jié)構(gòu)提供了很好的導(dǎo)航支持,但仍有一些解析策略問題需要仔細(xì)考慮。首先,整個(gè)XML文檔必須一次解析完成,不可能只做部分解析;其次是效率問題,在內(nèi)存中加載整個(gè)文檔和構(gòu)建完整樹結(jié)構(gòu)的成本很高,尤其當(dāng)文檔非常大的時(shí)候。典型地,DOM樹的容量比文檔容量要大一個(gè)數(shù)量級(jí),所以它要消耗大量?jī)?nèi)存;第三,一般的DOM節(jié)點(diǎn)類型在互操作性上有優(yōu)勢(shì),但對(duì)于對(duì)象類型綁定也許不是***的。
【編輯推薦】
- JavaScript DOM特性與應(yīng)用詳解
- HTML DOM入門級(jí)知識(shí)手冊(cè)
- HTML DOM display屬性語法實(shí)例解析
- 深入了解JavaScript HTML DOM對(duì)象
- 術(shù)語匯編 Javascript DOM技術(shù)探究




















