在網(wǎng)站開發(fā)過程中,你會(huì)聽到詞語“標(biāo)準(zhǔn)”很多次。 我的意思是,很多次。Internet Explorer因?yàn)椴恢С謽?biāo)準(zhǔn)而廣為詬病,Opera自稱是唯一的一個(gè)真正努力地完全實(shí)現(xiàn)標(biāo)準(zhǔn)的瀏覽器,而全世界的開發(fā)人員又相互責(zé)備沒有遵循標(biāo)準(zhǔn)???笑的是,大部分人根本不理解什么是標(biāo)準(zhǔn)或者它們是怎么變成這樣的。
讓我們以互聯(lián)網(wǎng)上的頭號(hào)神話來說起:W3C創(chuàng)造了標(biāo)準(zhǔn)。這完全是錯(cuò)誤的。 W3C宣稱的目標(biāo)是創(chuàng)造標(biāo) 準(zhǔn),但是它不能夠在實(shí)際上創(chuàng)造它們。為什么呢?因?yàn)?,很?jiǎn)單,標(biāo)準(zhǔn)是大多數(shù)人決定要做的事情。因此,網(wǎng)頁標(biāo)準(zhǔn)是大部分瀏覽器廠商決定要 追隨的。W3C可以推薦應(yīng)該怎么做,但是它沒有權(quán)利強(qiáng)制實(shí)施。如果W3C真的可以創(chuàng)造標(biāo)準(zhǔn),那么我們也不會(huì)仍然在等待相關(guān)的瀏覽器支持XHTML了,它 在1999年就完成了。W3C沒有能力強(qiáng)制瀏覽器廠商做任何事情;每個(gè)人都能決定自己想做什么。甚至參與到W3C的瀏覽器廠商都不遵循某些規(guī)范(全部的瀏 覽器廠商都這樣)。
所以如果我和我的同伴這個(gè)周末聚到一起然后想出了一個(gè)很酷的JavaScript特性,那么我們就和W3C一樣了。如果 我們確定可以讓Mozilla、Apple、Microsoft和Opera實(shí)現(xiàn)這個(gè)特性,那么我們就已經(jīng)創(chuàng)建了一個(gè)新的標(biāo)準(zhǔn)了——和W3C一樣。沒有一 個(gè)官方的標(biāo)志或印章可以讓一些東西成為標(biāo)準(zhǔn),它只是由兩個(gè)或更多瀏覽器來實(shí)現(xiàn)的。
W3C在創(chuàng)建標(biāo)準(zhǔn)上曾經(jīng)很傳統(tǒng)的不好。它們真正擅長(zhǎng)的是文 檔化和標(biāo)準(zhǔn)化已經(jīng)在瀏覽器中實(shí)現(xiàn)的東西。這樣導(dǎo)致了HTML 4 和DOM 1的創(chuàng)建大部分是基于在IE 4中的創(chuàng)新。是的,同學(xué)們,微軟在創(chuàng)建這些標(biāo)準(zhǔn)方面是比其它任何瀏覽器都更有影響力的,因?yàn)樗鼈儾粩嗲斑M(jìn)和創(chuàng)新而等不及有人告訴它們已經(jīng)好了。
事 實(shí)上,微軟的很多創(chuàng)新都已經(jīng)成為它們自己的標(biāo)準(zhǔn),比如innerHTML
屬性,XMLHttpRequest
對(duì)象,通過designMode
的富文本編輯。沒有瀏覽器敢不支持這些;這使它們成為了標(biāo)準(zhǔn)。W3C現(xiàn)在正在走一些流程將它 們引入到HTML 5 規(guī)范 和XMLHttpRequest 規(guī)范中。
責(zé)罵微軟不支持標(biāo)準(zhǔn)似乎變得很流行,但是人們可以說,如果世界上最流行的瀏覽器不去實(shí)現(xiàn)某些東西,它就不會(huì)真正的成為標(biāo) 準(zhǔn)。保守估計(jì)Internet Explorer在全球有80%左右的市場(chǎng)份額(2008年)。也就是說只有20%的互聯(lián)網(wǎng)用戶在使用“兼容標(biāo)準(zhǔn)”的瀏覽器。當(dāng)只有市場(chǎng)上20%的用戶使 用它,它會(huì)是一個(gè)標(biāo)準(zhǔn)嗎?仔細(xì)考慮一下吧。
真相是微軟只是跟隨了互聯(lián)網(wǎng)中最頑固的企業(yè)的領(lǐng)導(dǎo)者:網(wǎng)景(Netscape)。網(wǎng)景是第一個(gè)說 “我們要做我們想做的”的,然后引入了<blink>
標(biāo)簽。歷史表明在瀏覽器廠商開始創(chuàng)新的時(shí)候,網(wǎng)絡(luò)也跟著進(jìn)步 了。微軟不是唯一這樣做的。Mozilla也實(shí)現(xiàn)了不標(biāo)準(zhǔn)的特性,比如XSLTProcessor
;Safari 實(shí)現(xiàn)了<canvas>
標(biāo)簽;Opera 實(shí)現(xiàn)了<event-source>
標(biāo)簽和window.opera
對(duì)象。然而沒有人抱怨它們做出了自己的東西和創(chuàng)新……只有微軟是個(gè)壞小子。為什么這樣?
正如Alex Russell多次指出的,創(chuàng)新并不在W3C的手中。真正的 創(chuàng)新,可以帶動(dòng)互聯(lián)網(wǎng)發(fā)展的創(chuàng)新,需要來自于瀏覽器廠商。讓自由的市場(chǎng)來決定瀏覽器中最有用的特性然后讓W(xué)3C去規(guī)范它吧。那才是真正的標(biāo)準(zhǔn)。等到偉大的 HTML 5規(guī)范在2022完成了,不會(huì)推動(dòng)網(wǎng)絡(luò)向前發(fā)展。得讓像Alex一樣聰明的家伙開發(fā)瀏覽器才行(推動(dòng)web進(jìn)步)。
-----------
譯自:What are web standards?
中文:什么是網(wǎng)頁標(biāo)準(zhǔn)?
原作者:Nicholas C. Zakas
翻譯:神飛@前端觀察
聯(lián)系客服