? ? ? ? ?用來將標(biāo)記型文檔封裝成對象,并將標(biāo)記型文檔中的所有的內(nèi)容(標(biāo)簽厕诡,文本累榜,屬性等)都封裝成對象。封裝成對象的目的是為了更為方便的操作這些文檔以及文檔中的所有內(nèi)容灵嫌。因為對象的出現(xiàn)就可以有屬性和行為被調(diào)用壹罚。
文檔對象模型
文檔:標(biāo)記型文檔。
對象:封裝了屬性和行為的實例寿羞,可以被直接調(diào)用猖凛。
模型:所有標(biāo)記型文檔都具備一些共性特征的一個體現(xiàn)。
標(biāo)記型文檔(標(biāo)簽绪穆,屬性辨泳,標(biāo)簽中封裝的數(shù)據(jù)).
只要是標(biāo)記型文檔,DOM這種技術(shù)都可以對其進(jìn)行操作霞幅。
常見的標(biāo)記型文檔:html? xml
DOM這種技術(shù)是如何對標(biāo)記型文檔機(jī)型操作的呢漠吻?
要操作標(biāo)記型文檔必須對其進(jìn)行解析。
DOM技術(shù)的解析方式:將標(biāo)記型文檔解析一棵DOM樹司恳,并將樹中的內(nèi)容都封裝成節(jié)點對象途乃。
注意:這個DOM解析方式的好處:可以對樹中的節(jié)點進(jìn)行任意操作,比如:增刪改查扔傅。
弊端:這種解析需要將整個標(biāo)記型文檔加載進(jìn)內(nèi)存耍共。意味著如果標(biāo)記型文檔的體積很大,較為浪費內(nèi)存空間猎塞。
簡介另一種解析方式:SAX:是由一些組織定義的一種民間常用的解析方式试读,并不是w3c標(biāo)準(zhǔn),而DOM是W3C的標(biāo)準(zhǔn)荠耽。
SAX解析的方式:基于事件驅(qū)動的解析钩骇。獲取數(shù)據(jù)的速度很快,但是不能對標(biāo)記進(jìn)行增刪改。
DOM模型有三種:
DOM level 1:將html文檔封裝成對象倘屹。
DOM level 2:在leve 1基礎(chǔ)上加入了新功能银亲,比如解析名稱空間。
DOM level 3:將xml文檔封裝成了對象纽匙。
DHTML:動態(tài)的HTML务蝠。不是一門語言:是多項技術(shù)綜合體的簡稱。
其中包含了HTML,CSS,DOM,Javascript烛缔。
這四個技術(shù)在動態(tài)html頁面效果定義時馏段,都處于什么樣角色呢?負(fù)責(zé)什么樣的職責(zé)呢践瓷?
HTML:負(fù)責(zé)提供標(biāo)簽院喜,對數(shù)據(jù)進(jìn)行封裝,目的是便于對該標(biāo)簽中的數(shù)據(jù)進(jìn)行操作当窗。
簡單說:用標(biāo)簽封裝數(shù)據(jù)够坐。
CSS:負(fù)責(zé)提供樣式屬性,對標(biāo)簽中的數(shù)據(jù)進(jìn)行樣式的定義崖面。
簡單說:對數(shù)據(jù)進(jìn)行樣式定義
DOM:負(fù)責(zé)將標(biāo)簽型文檔以及文檔中的所有內(nèi)容進(jìn)行解析元咙,并封裝成對象,在對象中定義了更多的屬性和行為巫员,便于對對象操作庶香。
簡單說:將文檔和標(biāo)簽以及其他內(nèi)容變成對象。
JS:負(fù)責(zé)提供程序設(shè)計語言简识,對頁面中的對象進(jìn)行邏輯操作赶掖。
簡單說:負(fù)責(zé)頁面的行為定義。就是頁面的動態(tài)效果七扰。
所以javascript是動態(tài)效果的主力編程語言奢赂。
DHTML+XMLhttpRequest = AJAX
BOM:Browser Object Model 瀏覽器對象模型。
這個模型方便于操作瀏覽器颈走。
瀏覽器對應(yīng)的對象就是window對象膳灶。這個可以通過查閱dhtml api獲得。