由DOM學(xué)習(xí)產(chǎn)生的感想

最近學(xué)習(xí)JavaScript的時(shí)候嫩絮,接觸到了DOM藻治。第一次接觸這個(gè)概念的時(shí)候我有點(diǎn)懵,因?yàn)闊o論作為英文還是中文的解釋垄潮,它都讓我很困惑。
來自W3C School的解釋:

When a web page is loaded, the browser creates a Document Object Model of the page.

The HTML DOM model is constructed as a tree of Objects.

he DOM is a W3C (World Wide Web Consortium) standard.

The DOM defines a standard for accessing documents:

"The W3C Document Object Model (DOM) is a platform and language-neutral interface that allows programs and scripts to dynamically access and update the content, structure, and style of a document."

The W3C DOM standard is separated into 3 different parts:

  • Core DOM - standard model for all document types
  • XML DOM - standard model for XML documents
  • HTML DOM - standard model for HTML documents

來自Wiki的解釋:
The Document Object Model (DOM) is a cross-platform and language-independent interface that treats an XML or HTML document as a tree structure where in each node is an object representing a part of the document. The DOM represents a document with a logical tree. Each branch of the tree ends in a node, and each node contains objects. DOM methods allow programmatic access to the tree; with them one can change the structure, style or content of a document. Nodes can have event handlers attached to them. Once an event is triggered, the event handlers get executed. So, what does DOM exactly mean???
上面的解釋出現(xiàn)了tree structure(樹形結(jié)構(gòu))闷盔,node(節(jié)點(diǎn))和object(對象)弯洗,那么這些又分別是什么?對于剛學(xué)習(xí)前端的我看了一個(gè)名詞解釋里出現(xiàn)那么多不認(rèn)識(shí)的名詞這簡直要送我走逢勾。而Udemy課上老師對此講的也很含糊牡整。
接下來我們來看看簡中語境下的解釋。
來自Mozilla:

文檔對象模型 (DOM) 是HTML和XML文檔的編程接口溺拱。它提供了對文檔的結(jié)構(gòu)化的表述逃贝,并定義了一種方式可以使從程序中對該結(jié)構(gòu)進(jìn)行訪問,從而改變文檔的結(jié)構(gòu)迫摔,樣式和內(nèi)容沐扳。DOM 將文檔解析為一個(gè)由節(jié)點(diǎn)和對象(包含屬性和方法的對象)組成的結(jié)構(gòu)集合。簡言之句占,它會(huì)將web頁面和腳本或程序語言連接起來迫皱。

一個(gè)web頁面是一個(gè)文檔。這個(gè)文檔可以在瀏覽器窗口或作為HTML源碼顯示出來辖众。但上述兩個(gè)情況中都是同一份文檔。文檔對象模型(DOM)提供了對同一份文檔的另一種表現(xiàn)和敬,存儲(chǔ)和操作的方式凹炸。 DOM是web頁面的完全的面向?qū)ο蟊硎觯軌蚴褂萌?JavaScript等腳本語言進(jìn)行修改昼弟。

菜鳥教程:

DOM (Document Object Model) 譯為文檔對象模型啤它,是 HTML 和 XML 文檔的編程接口。

HTML DOM 定義了訪問和操作 HTML 文檔的標(biāo)準(zhǔn)方法。

DOM 以樹結(jié)構(gòu)表達(dá) HTML 文檔变骡。
OK离赫,樹結(jié)構(gòu)出現(xiàn) once again.

百度百科:
文檔對象模型(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是一種基于樹的API文檔接剩,它要求在處理過程中整個(gè)文檔都表示在存儲(chǔ)器中切厘。另外一種簡單的API是基于事件的SAX,它可以用于處理很大的XML文檔懊缺,由于大疫稿,所以不適合全部放在存儲(chǔ)器中處理。
總結(jié)一下以上定義鹃两,對于一個(gè)不太清楚“可擴(kuò)展指標(biāo)語言”遗座、“標(biāo)準(zhǔn)編程接口”、“www文檔風(fēng)格”怔毛、“樹形結(jié)構(gòu)”以及"SAX"的初學(xué)者员萍,這些解釋等同于沒解釋。
筆者根據(jù)自己在practice的過程拣度,反復(fù)觀看了Udemy上老師講述DOM的時(shí)候提到的一個(gè)關(guān)鍵詞——"manipulate"(操作碎绎、操縱),逐漸摸索出來了What the f***ing DOM is?
假設(shè)一個(gè)html網(wǎng)頁是一個(gè)Document(文件),那么html網(wǎng)頁里的標(biāo)簽抗果,無論是div,還是body筋帖,由于它們有可能層層嵌套或者“并聯(lián)”(這里借助一下電路圖的概念,也就是同級(jí)目錄)的關(guān)系冤馏,可以用樹形來描述它們的關(guān)系日麸,即有展開目錄,目錄下面有子目錄這樣的結(jié)構(gòu)逮光。思維導(dǎo)圖也可以說是樹形結(jié)構(gòu)的一種表現(xiàn)代箭。
DOM是什么呢?DOM的意思是涕刚,不需要通過直接改變html每個(gè)標(biāo)簽下面的content(內(nèi)容)嗡综,就可以靈活地展示html頁面,用別的方法來操作杜漠。最典型的例子就是雙人游戲的html網(wǎng)頁极景。如何顯示每個(gè)游戲參與者的姓名察净、設(shè)置什么條件下輪到對方、每一輪游戲結(jié)束顯示對方的分?jǐn)?shù)盼樟,這種動(dòng)態(tài)內(nèi)容如果寫在html網(wǎng)頁里氢卡,會(huì)顯得代碼很繁冗,可讀性低晨缴。因此使用DOM方法译秦,單獨(dú)寫一個(gè)腳本文件,讓這個(gè)腳本來控制html標(biāo)簽下的內(nèi)容喜庞。
通俗地來說诀浪,DOM是這么一個(gè)東西,假定讀者有一點(diǎn)html的知識(shí)(知道html標(biāo)簽延都,結(jié)構(gòu)):
我有一本書(對應(yīng)的是html頁面雷猪,或者叫Document),我在第5頁插了一個(gè)書簽(對應(yīng)的是形如div之類的標(biāo)簽名晰房,甚至是具體的class和id的名字)求摇,上面寫著“這一頁夾了100塊”,在第32頁又插了個(gè)標(biāo)簽“期末考試考點(diǎn)2”……當(dāng)我打開書簽(manipulate)到書中相應(yīng)頁的時(shí)候殊者,我可以“找到100塊”或者閱覽与境、涂改某一頁內(nèi)容(content),統(tǒng)稱為DOM。
說到這里猖吴,DOM更像是tag(標(biāo)簽)對吧摔刁?我個(gè)人覺得就是根據(jù)一些標(biāo)簽做索引改變相應(yīng)標(biāo)簽下的內(nèi)容,根據(jù)標(biāo)簽對標(biāo)簽下面的元素進(jìn)行操作海蔽。那么為什么它的定義看起來非常的不像人話呢共屈?
筆者在此再舉一個(gè)例子,正好是昨天看書看到的党窜。


中文版本如下(來自圖靈圖書):
如果對于每個(gè)i∈I都對應(yīng)這個(gè)一個(gè)集合Ai拗引,那么A={Ai | i∈I}就是索引集為I的集合A的索引族。
可能有人就要問“這說的是人話嗎幌衣?”
的確矾削,作為“定義”來說,這樣的描述非常嚴(yán)謹(jǐn)豁护,包括上面我摘抄的各種關(guān)于DOM的定義哼凯。學(xué)術(shù)定義講究的是“簡潔嚴(yán)謹(jǐn)”,因此將含義豐富的內(nèi)容盡可能縮減在一句話楚里,句子間為簡潔而大量使用的邏輯連接詞以及術(shù)語就會(huì)讓初學(xué)者對定義感到非常困惑挡逼。這樣也造成了自學(xué)的困難:如何將“不是人話”的語言翻譯成“人話”?
那么來看定義3.3腻豌,說的是這么個(gè)事情:
首先是三類集合:I,Ai和花體A家坎。i是I的元素。Ai是以i作為下標(biāo)的集合荸型,也就是靠i來“索引”鞍历,例如A1,A2,A3……花體A是Ai的集合力试,I叫索引集,Ai叫索引族也叫集合族(簇)做瞪。
當(dāng)然了這個(gè)定義有什么用,為啥這樣定義這里暫且不表右冻,但這個(gè)定義含義是很豐富的装蓬。可能字面上來看纱扭,你沒有不認(rèn)識(shí)的字牍帚,沒有生僻的詞,但是就是不明白什么意思乳蛾。這就需要把“不是人話”的語言“解析”(parse)成人話暗赶。能做到這一點(diǎn),才能說明你對這個(gè)定義了解了肃叶。
把看起來不像是人說的學(xué)術(shù)語言通過理解蹂随、消化成“人的語言”這就是自學(xué)重要的地方。The Real Analysis Lifesaver里也提到了:“...(statements 命題) Try to read them loud, translating all the symbols into English”因惭,意思是讓你把命題和用數(shù)學(xué)符號(hào)表述的定義岳锁、定理替換成人類的語言,才能真正理解命題的含義蹦魔。當(dāng)然了激率,這也可以檢驗(yàn)一個(gè)人是否真的學(xué)會(huì)某個(gè)知識(shí)點(diǎn)/學(xué)科。假如一個(gè)人張口閉口“專業(yè)名詞/術(shù)語”版姑,讓他用稍微簡單一點(diǎn)的例子來類比說明他說不出來柱搜。
這人大概率是自己都懵的狀態(tài)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末剥险,一起剝皮案震驚了整個(gè)濱河市聪蘸,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌表制,老刑警劉巖健爬,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異么介,居然都是意外死亡娜遵,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進(jìn)店門壤短,熙熙樓的掌柜王于貴愁眉苦臉地迎上來设拟,“玉大人慨仿,你說我怎么就攤上這事∧呻剩” “怎么了镰吆?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長跑慕。 經(jīng)常有香客問我万皿,道長,這世上最難降的妖魔是什么核行? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任牢硅,我火速辦了婚禮,結(jié)果婚禮上芝雪,老公的妹妹穿的比我還像新娘减余。我一直安慰自己,他們只是感情好绵脯,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布佳励。 她就那樣靜靜地躺著,像睡著了一般蛆挫。 火紅的嫁衣襯著肌膚如雪赃承。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天悴侵,我揣著相機(jī)與錄音瞧剖,去河邊找鬼。 笑死可免,一個(gè)胖子當(dāng)著我的面吹牛抓于,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播浇借,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼捉撮,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了妇垢?” 一聲冷哼從身側(cè)響起巾遭,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎闯估,沒想到半個(gè)月后灼舍,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡涨薪,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年骑素,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片刚夺。...
    茶點(diǎn)故事閱讀 38,747評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡献丑,死狀恐怖末捣,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情创橄,我是刑警寧澤塔粒,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站筐摘,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏船老。R本人自食惡果不足惜咖熟,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望柳畔。 院中可真熱鬧馍管,春花似錦、人聲如沸薪韩。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽俘陷。三九已至罗捎,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間拉盾,已是汗流浹背桨菜。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留捉偏,地道東北人倒得。 一個(gè)月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像夭禽,于是被迫代替她去往敵國和親霞掺。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,658評論 2 350