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