久久精品日韩无码|61伊人久久绿帽|最新国产浮力网站|亚州aV无码国产|明星一二三区av|超碰人人在线成人|澳门无码福利av

什么是dom0,dom1,dom2,dom3?

時(shí)間:2024-08-08 11:34 人氣:0 編輯:admin

一、什么是dom0,dom1,dom2,dom3?

DOM 是用來訪問或操作HTML文檔、XHTML文檔、XML文檔中的節(jié)點(diǎn)元素。

現(xiàn)在基本上所有的瀏覽器都都執(zhí)行了W3C發(fā)布的DOM規(guī)范,所以在瀏覽器上就可以用DOM的這些API。

DOM的級別Level

DOM0:不是W3C規(guī)范。

DOM1:開始是W3C規(guī)范。專注于HTML文檔和XML文檔。

DOM2:對DOM1增加了樣式表對象模型

DOM3:對DOM2增加了內(nèi)容模型 (DTD 、Schemas) 和文檔驗(yàn)證。

二、DOM 是什么?

牢記:站高一個(gè)維度去理解問題 !

為了理解DOM,我們至少需要站在瀏覽器的角度來思考。

DOM概念本身很簡單,請先完全跟著我的思路來:

  1. 普通文檔(*.txt)和HTML/XML文檔(*.html/*.xml)的區(qū)別僅僅是因?yàn)楹笳呤怯薪M織的結(jié)構(gòu)化文件;
  2. 瀏覽器將結(jié)構(gòu)化的文檔以樹的數(shù)據(jù)結(jié)構(gòu)讀入瀏覽器內(nèi)存,并將每個(gè)樹的子節(jié)點(diǎn)定義為一個(gè)NODE(想象這顆樹,從根節(jié)點(diǎn)到葉子節(jié)點(diǎn)都被建模為一個(gè)NODE對象);
  3. 這每個(gè)節(jié)點(diǎn)(NODE)都有自己的屬性(名稱、類型、內(nèi)容...);
  4. NODE之間有層級關(guān)系(parents、child、sibling...);
  5. 以上已經(jīng)完成文檔的建模工作(將文檔內(nèi)容以樹形結(jié)構(gòu)寫入內(nèi)存),此時(shí)再編寫一些方法來操作節(jié)點(diǎn)(屬性和位置信息),即為NODE API。

抽象一下:

  • DOM是一種將HTML/XML文檔組織成對象模型建模過程;
  • DOM建模重點(diǎn)在于如何解析HTML/XML文檔和開放符合DOM接口規(guī)范的節(jié)點(diǎn)操作API接口

再抽象一下:

  • 解析文檔,建模成對象模型,開放API接口。

最后:

  • DOM:Document Object Model 文檔對象模型

再回顧下整個(gè)過程,每個(gè)步驟都可以問自己幾個(gè)問題,比如:DOM到底是建模過程,還是最后建的那個(gè)模型,還是指操作節(jié)點(diǎn)的API接口呢,還是...?

以上是站在瀏覽器的角度思考DOM,你還可以站在瀏覽器設(shè)計(jì)人員、網(wǎng)頁編碼人員等角度考慮:

  • DOM跟JavaScript什么關(guān)系?
    • DOM很顯然誕生在瀏覽器,一開始是用JS實(shí)現(xiàn)的;
    • 但隨著DOM本身的發(fā)展,已經(jīng)形成規(guī)范,你可以用任何一種語言比如Python來解析文檔,生成對像樹,只要滿足DOM標(biāo)準(zhǔn),包括開放標(biāo)準(zhǔn)的操作接口,那你實(shí)現(xiàn)的就是一個(gè)DOM。
  • DOM開放的接口如何操作?
    • JS原生接口使用。
    • JQuery高緯度封裝如何使用。
  • ...

至此,你應(yīng)該明白了什么是DOM,甚至明白了為什么一開始不明白以后如何做,如何舉一反三,甚至還能看出一點(diǎn)如何建立體系化認(rèn)知的影子。笑

牢記:站高一個(gè)維度去理解問題 !

三、dom操作?

文檔對象模型( DOM, Document Object Model )主要用于對HTML和XML文檔的內(nèi)容進(jìn)行操作。DOM描繪了一個(gè)層次化的節(jié)點(diǎn)樹,通過對節(jié)點(diǎn)進(jìn)行操作,實(shí)現(xiàn)對文檔內(nèi)容的添加、刪除、修改、查找等功能。

一、DOM樹

DOM樹有兩種,分別為節(jié)點(diǎn)樹和元素樹。

節(jié)點(diǎn)樹:把文檔中所有的內(nèi)容都看成樹上的節(jié)點(diǎn);

元素樹:僅把文檔中的所有標(biāo)簽看成樹上的節(jié)點(diǎn)。

二、DOM常用操作

2.1 查找節(jié)點(diǎn)

document.getElementById('id屬性值');

返回?fù)碛兄付╥d的第一個(gè)對象的引用

document/element.getElementsByClassName('class屬性值');

返回?fù)碛兄付╟lass的對象集合

document/element.getElementsByTagName('標(biāo)簽名');

返回?fù)碛兄付?biāo)簽名的對象集合

document.getElementsByName('name屬性值');

返回?fù)碛兄付Q的對象結(jié)合

document/element.querySelector('CSS選擇器');

僅返回第一個(gè)匹配的元素

document/element.querySelectorAll('CSS選擇器');

返回所有匹配的元素

document.documentElement

獲取頁面中的HTML標(biāo)簽

document.body

獲取頁面中的BODY標(biāo)簽

document.all['']

獲取頁面中的所有元素節(jié)點(diǎn)的對象集合型

2.2 新建節(jié)點(diǎn)

document.createElement('元素名');

創(chuàng)建新的元素節(jié)點(diǎn)

document.createAttribute('屬性名');

創(chuàng)建新的屬性節(jié)點(diǎn)

document.createTextNode('文本內(nèi)容');

創(chuàng)建新的文本節(jié)點(diǎn)

document.createComment('注釋節(jié)點(diǎn)');

創(chuàng)建新的注釋節(jié)點(diǎn)

document.createDocumentFragment( );

創(chuàng)建文檔片段節(jié)點(diǎn)

2.3 添加新節(jié)點(diǎn)

parent.appendChild( element/txt/comment/fragment );

向父節(jié)點(diǎn)的最后一個(gè)子節(jié)點(diǎn)后追加新節(jié)點(diǎn)

parent.insertBefore( newChild, existingChild );

向父節(jié)點(diǎn)的某個(gè)特定子節(jié)點(diǎn)之前插入新節(jié)點(diǎn)

element.setAttributeNode( attributeName );

給元素增加屬性節(jié)點(diǎn)

element.setAttribute( attributeName, attributeValue );

給元素增加指定屬性,并設(shè)定屬性值

四、dom格式?

dom是app文檔格式。

DOM一般指文檔對象模型。文檔對象模型(Document Object Model,簡稱DOM),是W3C組織推薦的處理可擴(kuò)展置標(biāo)語言的標(biāo)準(zhǔn)編程接口。它是一種與平臺(tái)和語言無關(guān)的應(yīng)用程序接口(API),它可以動(dòng)態(tài)地訪問程序和腳本,更新其內(nèi)容、結(jié)構(gòu)和www文檔的風(fēng)格。

DOM是一種基于樹的API文檔,它要求在處理過程中整個(gè)文檔都表示在存儲(chǔ)器中。

五、dom解析?

DOM: 要求解析器將整個(gè)XML 文檔裝在到內(nèi)存, 并解析成一個(gè) Document 對象.

a) . 優(yōu)點(diǎn): 元素與元素之間保留結(jié)構(gòu)關(guān)系, 故可以進(jìn)行增刪改查操作.

b) . 缺點(diǎn): XML 文檔過大, 可能出現(xiàn)內(nèi)存溢出現(xiàn)象

解析器: 就是根據(jù)不同的解析方式提供的具體實(shí)現(xiàn), 有的解析器操作過于繁瑣, 為開發(fā)方便, 提供了易于操作的解析開發(fā)包。

六、dom詞根?

dom是Document Object Model縮寫,翻譯過來就是文檔對象模型

文檔對象模型(Document Object Model,簡稱DOM),是W3C組織推薦的處理可擴(kuò)展置標(biāo)語言的標(biāo)準(zhǔn)編程接口。它是一種與平臺(tái)和語言無關(guān)的應(yīng)用程序接口(API),它可以動(dòng)態(tài)地訪問程序和腳本,更新其內(nèi)容、結(jié)構(gòu)和www文檔的風(fēng)格(HTML和XML文檔是通過說明部分定義的)。文檔可以進(jìn)一步被處理,處理的結(jié)果可以加入到當(dāng)前的頁面。

七、dom全稱?

文檔對象模型(Document Object Model,簡稱DOM),是W3C組織推薦的處理可擴(kuò)展置標(biāo)語言的標(biāo)準(zhǔn)編程接口。它是一種與平臺(tái)和語言無關(guān)的應(yīng)用程序接口(API),它可以動(dòng)態(tài)地訪問程序和腳本,更新其內(nèi)容、結(jié)構(gòu)和www文檔的風(fēng)格(HTML和XML文檔是通過說明部分定義的)。文檔可以進(jìn)一步被處理,處理的結(jié)果可以加入到當(dāng)前的頁面。

八、虛擬dom與真實(shí)dom的區(qū)別?

1 虛擬dom是在操作真實(shí)dom的基礎(chǔ)上進(jìn)行操作和渲染的,相較于真實(shí)dom來說更加輕量級、高效且易于維護(hù)。2 虛擬dom不需要直接操作真實(shí)dom,而是通過diff算法和批量操作等方式,將修改后的虛擬dom與之前的虛擬dom進(jìn)行比對,最終僅對需要進(jìn)行更新的真實(shí)dom節(jié)點(diǎn)進(jìn)行操作,從而降低了dom操作的成本和頻率。3 使用虛擬dom可以提供更加流暢的用戶體驗(yàn),同時(shí)也能夠減輕大型web應(yīng)用程序的服務(wù)器壓力。4 真實(shí)dom的操作屬于瀏覽器的原生操作,因此在某些場景下可能比虛擬dom更加高效,例如單頁面應(yīng)用程序中復(fù)雜交互和低延遲等操作,但同時(shí)也會(huì)帶來更多的維護(hù)和優(yōu)化難度。

九、后綴/login.dom#里的dom是什么意思?

你是在什么場景下遇到這個(gè)問題的?login.dom我能聯(lián)想到的可能只有dom是某個(gè)叫l(wèi)ogin的對象的屬性

十、vue虛擬dom和真實(shí)dom的區(qū)別?

1 虛擬DOM和真實(shí)DOM的最大區(qū)別在于刷新頁面方式的不同。

真實(shí)DOM需要重新渲染整個(gè)頁面,而虛擬DOM只更新需要更新的部分,減少了頁面重繪的操作,從而提高了頁面的渲染效率。

2 虛擬DOM是在內(nèi)存中維護(hù)的一份虛擬的DOM樹,通過比對虛擬DOM和真實(shí)DOM的差異來進(jìn)行有針對性地更新操作,實(shí)現(xiàn)最小化渲染,提高效率。

3 虛擬DOM還能夠保證頁面渲染的一致性,不受操作系統(tǒng)和瀏覽器的影響,并且方便進(jìn)行跨平臺(tái)和跨框架開發(fā)。

因此,虛擬DOM成為了眾多前端框架和庫的共同選擇,如React、Vue等等。

相關(guān)資訊
熱門頻道

Copyright © 2024 招聘街 滇ICP備2024020316號-38