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