在W3C中DOM有1~3的level,第一次看到時(shí)會(huì)很難理解這個(gè)level。在漢語中l(wèi)evel和rank是一回事,他們都是“等級(jí)”,并不需要特殊的區(qū)分。我們看到level總是會(huì)自然地把它當(dāng)做rank。實(shí)際上W3C想表達(dá)的是偏向version的概念,如果用rank來理解就完全混亂了。
很早以前,標(biāo)記語言并沒有標(biāo)準(zhǔn)化的DOM。所以各種瀏覽器都提供自己對(duì)標(biāo)記語言文檔的API,這個(gè)時(shí)候稱為BOM(Browser Object Model)。但是每個(gè)瀏覽器上的API都不同,這對(duì)開發(fā)者來說顯然是一件蛋疼的事情。所以,這個(gè)東西一定要標(biāo)準(zhǔn)化!于是就有了“DOM level 1”。它統(tǒng)一了很多API,但不是全部。因?yàn)橛行〇|西在BOM時(shí)代就已經(jīng)是所有瀏覽器的潛規(guī)則了,即使沒有標(biāo)準(zhǔn),大家也都兼容的。比如“元素.on事件=函數(shù)”這樣的寫法,這并沒有被“DOM Level 1”標(biāo)準(zhǔn)化。我們現(xiàn)在對(duì)這種在DOM標(biāo)準(zhǔn)化之前就已經(jīng)成為潛規(guī)則的標(biāo)準(zhǔn)稱為“DOM level 0”,它不是W3C的東西,W3C對(duì)DOM的level是從1開始的。
“DOM level 1”可以說是第一版的文檔對(duì)象API。隨著Web的不斷發(fā)展,各種瀏覽器都在原來的基礎(chǔ)上逐漸推出新的API,比如attachEvent和addEventListener。這就回到了之前混亂的狀態(tài)。所以需要一個(gè)更新的標(biāo)準(zhǔn)來約束這些亂七八糟的API。于是就推出了“DOM level 2”,也就是第二版的文檔對(duì)象API。雖然說第二版是建立在第一版的基礎(chǔ)上,但是對(duì)第一版做了很大的修改。比如createTextNode這個(gè)方法在ECMAScript中的定義在第一版本中參數(shù)類型是DOMString,到了第二版本就直接使用String。除了修改之外還統(tǒng)一了一些新的東西。比如添加事件監(jiān)聽的方法統(tǒng)一成了addEventListener。
雖然這個(gè)“DOM level 2”在2000年就推出了,但是可惡的微軟拖了近十年,直到2009年的IE9才遵循這個(gè)標(biāo)準(zhǔn)。更麻煩的是目前還有大量的用戶使用IE9之前版本的瀏覽器,這也是Web開發(fā)者最痛恨的事情之一了。
現(xiàn)代瀏覽器對(duì)“DOM level 2”的遵循已經(jīng)做的很不錯(cuò)了,不過W3C在04年又制定了“DOM level 3”,在第三版中引入的東西目前還不太流行。我個(gè)人認(rèn)為“DOM level 3”的推出和之前的兩個(gè)版本的概念完全不同了。之前的版本是先有瀏覽器的API差異,之后才制定的標(biāo)準(zhǔn),是有了需求之后才去發(fā)明的東西。但是第三版的功能感覺很雞肋,它變成了先發(fā)明東西再去尋找需求。這不符合市場(chǎng)的規(guī)則。對(duì)于瀏覽器對(duì)它的兼容,目前而言,我覺得是無所謂的。
總之呢,DOM的level不是別的,就是一個(gè)大版本號(hào)。
分享題目:講解DOM的level
網(wǎng)站地址:http://jinyejixie.com/news49/324699.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、用戶體驗(yàn)、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、服務(wù)器托管
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源:
創(chuàng)新互聯(lián)