HTML 5標(biāo)準(zhǔn):富互聯(lián)網(wǎng)時(shí)代的產(chǎn)物
前不久,微軟在MIX10大會(huì)上為我們展示了Internet Explore 9(IE9)預(yù)覽版,該版本不僅進(jìn)行了更多的技術(shù)創(chuàng)新,同時(shí)也在標(biāo)準(zhǔn)的支持上邁出了一大步,特別是對(duì)HTML 5的廣泛支持,之前51cto也曾報(bào)導(dǎo)過谷歌為擁抱HTML 5決定放棄Gears,相信這對(duì)于Web開發(fā)者是件好事,同時(shí)也會(huì)加速HTML 5的推廣。
HTML 5是HTML的最新標(biāo)準(zhǔn),HTML 5的草案已經(jīng)于2008年發(fā)布,目前W3C(萬維網(wǎng)聯(lián)盟)正在對(duì)此進(jìn)行進(jìn)一步完善,可能于今年年底或更晚些時(shí)候正式推出。對(duì)許多人來說,早該進(jìn)行這種改進(jìn)了。十多年來,HTML一直沒有進(jìn)行真正的升級(jí),上一次正式獲得W3C推薦(即Web標(biāo)準(zhǔn)制定過程的最終階段)的標(biāo)準(zhǔn)語言還是2001年的XHTML 1.1。此后的這些年,Web開發(fā)人員要求升級(jí)的呼聲越來越高。因?yàn)镠TML和XHTML標(biāo)準(zhǔn)已力不從心,它們以文檔為中心的理念無法有效地滿足現(xiàn)代Web應(yīng)用的需要。
HTML 5旨在改變這一切,這項(xiàng)新標(biāo)準(zhǔn)將包括更強(qiáng)大的用于交互、多媒體和本地化等方面的標(biāo)簽以及應(yīng)用編程接口(API)。隨著對(duì)HTML 5功能特性的支持慢慢出現(xiàn)在目前主流的瀏覽器中,一些開發(fā)人員甚至已開始表達(dá)這種希望:這種經(jīng)過更新的新HTML將會(huì)解放瀏覽器,讓瀏覽器不必再依賴Flash、QuickTime和Silverlight等專有插件。
然而,雖然一些知名的內(nèi)容發(fā)布網(wǎng)站已經(jīng)開始支持這項(xiàng)新標(biāo)準(zhǔn),如蘋果、谷歌、Mozilla 基金會(huì)、Vimeo和YouTube,但W3C的內(nèi)部人士表示,HTML 5 前面的道路依然很坎坷。這項(xiàng)規(guī)范的有些部分仍存在爭(zhēng)議,而另一些部分尚未最終敲定。最終標(biāo)準(zhǔn)可能幾年后才會(huì)出現(xiàn),而大部分網(wǎng)民用上兼容HTML 5的瀏覽器則需要更長(zhǎng)的時(shí)間。在此期間,開發(fā)人員將面臨一大難題:如何利用現(xiàn)有技術(shù)開發(fā)富Web應(yīng)用,同時(shí)為今后順利過渡到HTML 5做好準(zhǔn)備。
讓HTML跟上富互聯(lián)網(wǎng)時(shí)代
富互聯(lián)網(wǎng)應(yīng)用與HTML并非一直是天作之合。按互聯(lián)網(wǎng)之父Tim Berners-Lee的說法,HTML就是“一種用來創(chuàng)建平臺(tái)獨(dú)立的超文本文檔的簡(jiǎn)單標(biāo)記語言。”XHTML(采用純XML格式的語言)問世后,W3C保留了把網(wǎng)頁(yè)視做文檔的這種理念,而幾項(xiàng)提議的XHTML標(biāo)準(zhǔn)注重文檔結(jié)構(gòu)、與XML工具的兼容性以及Berners-Lee憧憬的語義Web等問題。
這讓那些認(rèn)為互聯(lián)網(wǎng)作為一種應(yīng)用平臺(tái)還會(huì)有更大作為的開發(fā)人員深感沮喪。2004年,蘋果、Mozilla 基金會(huì)和 Opera軟件公司的代表共同成立了Web超文本應(yīng)用技術(shù)工作組(WHATWG),這是個(gè)獨(dú)立的Web標(biāo)準(zhǔn)聯(lián)盟。WHATWG獨(dú)立于W3C組織開展工作,開始攜手改進(jìn)HTML,方向是互聯(lián)網(wǎng)應(yīng)以應(yīng)用為中心。
2007年,由于 XHTML2方面的工作陷入了似乎無休止的爭(zhēng)論中,W3C投票決定采納WHATWG的工作成果,在此基礎(chǔ)上制定新的HTML 5標(biāo)準(zhǔn)。至此,連Berners-Lee都改變了立場(chǎng),支持互聯(lián)網(wǎng)以應(yīng)用為中心。他在2006年曾寫道:“事隔幾年后想想,一些問題比較清楚。有必要逐步完善HTML,而試圖讓全世界一下子改用XML是行不通的。”
這倒不是說純XML的標(biāo)記語言這個(gè)想法已過時(shí)。雖然HTML在標(biāo)準(zhǔn)制定工作中重新扮演起主角,但采用XML格式的HTML 5(名為XHTML 5)同時(shí)也在開發(fā)中。區(qū)別在于,XHTML 5將面向那些已經(jīng)改用HTML 5的人,而開發(fā)人員不再非得遵守XHTML的嚴(yán)格語法才能充分利用Web標(biāo)記語言的最新功能特性。
重新定義標(biāo)簽
盡管如此,HTML 5還是繼承了當(dāng)初提議為XHTML 2增添的許多特性,包括旨在改善文檔結(jié)構(gòu)的許多功能特性。比如說,新的HTML標(biāo)簽(如header、footer、dialog、aside和figure)讓內(nèi)容創(chuàng)作者能夠以一致的方式,指定常用文檔元素。以前,開發(fā)人員不得不使用自定義類屬性的Div標(biāo)簽來標(biāo)記這類元素,這種自定義的方法使得HTML文檔很難解析。
HTML 5還繼續(xù)致力于把Web內(nèi)容與表現(xiàn)分開來。比如,開發(fā)人員可能會(huì)驚訝地看到新標(biāo)準(zhǔn)中可以使用b元素和i元素,不過這些元素現(xiàn)在用來以類屬方式作為文本的一部分,而不代表任何特定的排版格式。比如,i元素過去代表斜體字體,而在HTML 5中,它僅僅指“突出不同意見或語氣的一段文本”。與之相似的是,b元素并不代表特意加重字體的文本,而是代表文體上突出的不包含任何額外重要性的文本。
相比之下,原先專門代表下劃線文本的u標(biāo)簽在HTML 5中被棄用了,一同棄用的還有其他針對(duì)特定表現(xiàn)的元素,包括font、center和strike。這類樣式屬性現(xiàn)在被認(rèn)為是CSS所特有的。
新標(biāo)準(zhǔn)為表單輸入元素引入了額外的數(shù)據(jù)類型,包括日期、URL和電子郵件地址,同時(shí)對(duì)部分原來的元素進(jìn)行了修改,比如改進(jìn)了對(duì)非拉丁文字符集的支持,包括用于指定出現(xiàn)在一些亞洲語言中的“附注文字”(ruby text)的標(biāo)簽。HTML 5 還引入了微數(shù)據(jù)(Microdata)概念,這是一種用機(jī)器可讀標(biāo)簽來標(biāo)注HTML內(nèi)容的方法,從而為語義Web簡(jiǎn)化了處理??傊@些結(jié)構(gòu)上的改進(jìn)讓內(nèi)容創(chuàng)作者得以提交更干凈、更容易管理的網(wǎng)頁(yè),這些網(wǎng)頁(yè)可與搜索引擎、屏幕閱讀軟件及其他自動(dòng)化內(nèi)容分析工具很好地兼容。 #p#
實(shí)現(xiàn)更豐富、基于標(biāo)準(zhǔn)的Web
但世人最迫切期待的HTML 5新增方面卻是那些新的元素和API,讓內(nèi)容創(chuàng)作者只要使用基于標(biāo)準(zhǔn)的HTML,就能制作豐富多媒體內(nèi)容。現(xiàn)代網(wǎng)頁(yè)越來越多地采用可擴(kuò)展圖形、動(dòng)畫和多媒體,但到目前為止,這些功能要求使用Flash、RealMedia和QuikTime等專有插件。這類插件不但帶來了新的安全風(fēng)險(xiǎn),還限制了網(wǎng)頁(yè)的受眾面。
HTML 5解決這個(gè)問題的一個(gè)辦法就是讓瀏覽器原生地支持相關(guān)的標(biāo)記語言。內(nèi)容創(chuàng)作者可以把用MathML(用于渲染公式)和SVG(用于渲染可擴(kuò)展矢量圖形)編寫的標(biāo)記直接嵌入到HTML 5網(wǎng)頁(yè)中。這種更強(qiáng)的靈活性讓跨平臺(tái)的HTML比設(shè)計(jì)當(dāng)初就既要支持圖形又要兼顧文本的Flash和Silverlight等更有競(jìng)爭(zhēng)力。
不過,Web開發(fā)人員對(duì)HTML 5新的音頻和視頻標(biāo)簽的呼聲更高,這些標(biāo)簽最終目的是要很容易地把多媒體內(nèi)容嵌入到網(wǎng)頁(yè)中。這些標(biāo)簽在HTML 5標(biāo)準(zhǔn)中要求與編解碼器無關(guān),這意味著將由瀏覽器廠商負(fù)責(zé)提供能播放任何內(nèi)容所需的編解碼器,只要符合一定標(biāo)準(zhǔn)就可以。其中,視頻標(biāo)簽尤其被寄予厚望,因?yàn)閷?duì)網(wǎng)上視頻提供商來說,它們希望自己的內(nèi)容未來可以在蘋果的iPhone(手機(jī)上網(wǎng))和即將發(fā)布的iPad上播放,這兩款設(shè)備目前都不支持Flash。
畫布(Canvas)標(biāo)簽讓交互式Web圖形向前邁進(jìn)了一步,該標(biāo)簽可用來把瀏覽器窗口的某些區(qū)域定義為動(dòng)態(tài)位圖。Web開發(fā)人員可使用JavaScript來處理畫布中的內(nèi)容,針對(duì)用戶操作實(shí)時(shí)渲染圖形。從理論上來說,這項(xiàng)技術(shù)有望讓開發(fā)人員只要使用JavaScript和HTML,就能開發(fā)出完全交互的游戲。
除了這些顯示技術(shù)外,HTML 5 還引入了基于瀏覽器的應(yīng)用緩存概念,應(yīng)用緩存讓W(xué)eb應(yīng)用可以把信息存儲(chǔ)在客戶端設(shè)備上。與谷歌Gears 插件一樣,這些緩存既提升了應(yīng)用性能,又可以讓用戶即便無法連接互聯(lián)網(wǎng),也能繼續(xù)使用Web應(yīng)用。實(shí)際上,谷歌已經(jīng)計(jì)劃逐步停止支持Gears,改而支持HTML 5技術(shù)。
瀏覽器插件還沒過時(shí)
盡管 HTML 5有諸多新特性,但也別指望插件會(huì)一夜之間銷聲匿跡。Web向來就有多種相互競(jìng)爭(zhēng)的技術(shù)與媒體格式共存的傳統(tǒng),且很難克服這種傳統(tǒng)的強(qiáng)大慣性。也許很多年以后,純HTML 5瀏覽器的性能才趕得上如今各式各樣的客戶端。
比如,盡管Vimeo和YouTube已經(jīng)在試用HTML 5 Video標(biāo)簽部署HTML 5多媒體內(nèi)容,卻不會(huì)像聽上去那么容易。W3C決定不在HTML 5標(biāo)準(zhǔn)中明確規(guī)定用哪種特定的媒體編解碼器,這意味著開發(fā)人員無法保證任何一種媒體格式在每一種客戶端設(shè)備上都能播放。比如,蘋果、谷歌和微軟都在力推H.264視頻格式,但Firefox和Konqueror等開源瀏覽器卻無法(或者說思想上不愿)把支持這種格式的相應(yīng)專利權(quán)授給別人。除非解決這個(gè)問題,否則Web內(nèi)容創(chuàng)作者要想覆蓋最廣泛的受眾面,可能只好繼續(xù)依賴Flash。
也并不是每個(gè)舊的Web應(yīng)用都能針對(duì)HTML 5進(jìn)行改寫。比如,盡管谷歌低調(diào)對(duì)待自身的Gears技術(shù),青睞基于標(biāo)準(zhǔn)的本地應(yīng)用存儲(chǔ)方法,但Gears API和HTML 5應(yīng)用緩存API并不完全一樣。谷歌自己承認(rèn)“目前還沒有一種簡(jiǎn)單、全面的方法可以讓具有Gears功能的應(yīng)用(連同整個(gè)用戶群)都改用基于標(biāo)準(zhǔn)的方法。”除非真有這種方法,否則連使用完全兼容HTML的瀏覽器的用戶也可能只好安裝Gears以支持這些過去開發(fā)的Web應(yīng)用。
最后,對(duì)鐘情于HTML 5的開發(fā)人員來說,瀏覽器市場(chǎng)份額也許是最大的障礙。盡管IE6存在渲染問題、在Web標(biāo)準(zhǔn)支持方面落后,卻似乎仍是不可能馬上消失的瀏覽器。舊版本的 Firefox、Opera、Safari及其他瀏覽器也有龐大的用戶群,而它們中沒一個(gè)支持HTML 5。除非這些瀏覽器換成新版,否則Web開發(fā)人員可能需要同時(shí)維護(hù)兩個(gè)版本的網(wǎng)站:一個(gè)面向HTML 5用戶的版本,另一個(gè)面向依賴過時(shí)渲染方法的面向舊瀏覽器的版本。
蘋果的iPhone和iPad青睞HTML 5,不支持Flash,隨著HTML 5日趨成熟,預(yù)計(jì)它們會(huì)支持這項(xiàng)標(biāo)準(zhǔn)。與之相似的是,谷歌的Chrome瀏覽器在支持HTML 5方面一路領(lǐng)先,而基于該公司即將推出的Chrome OS的設(shè)備預(yù)計(jì)會(huì)亦步亦趨。不過,各大內(nèi)容發(fā)布網(wǎng)站在標(biāo)準(zhǔn)支持方面一向很保守,就算擁有龐大的HTML 5用戶群,財(cái)富500強(qiáng)公司可能也在多年以后才愿意冒險(xiǎn)升級(jí)。 #p#
如何向HTML 5過渡?
Web開發(fā)社區(qū)的不少人認(rèn)為轉(zhuǎn)向HTML 5要謹(jǐn)慎。比如,雖然微軟計(jì)劃在IE9中支持HTML 5,但這家軟件業(yè)巨擘對(duì)于在HTML 5還沒有正式成為標(biāo)準(zhǔn)之前支持它心存疑慮。微軟Windows事業(yè)部總裁Steven Sinofsky最近接受采訪時(shí)表示:“先說自己基于標(biāo)準(zhǔn),但隨后又說你是最兼容HTML 5的瀏覽器,這種做法不明智,因?yàn)檫@項(xiàng)標(biāo)準(zhǔn)還沒有制定完畢。”
W3C也對(duì)HTML 5的前景持謹(jǐn)慎態(tài)度。HTML 5工作組預(yù)計(jì)這項(xiàng)標(biāo)準(zhǔn)在2011年之前不會(huì)正式成為候選推薦標(biāo)準(zhǔn)—這是W3C標(biāo)準(zhǔn)制定過程的特性完成階段。即便到那時(shí),批準(zhǔn)其為W3C推薦標(biāo)準(zhǔn)的過程預(yù)計(jì)仍會(huì)持續(xù)到2022年前后。如果真是這樣,從XHTML 1.1走到HTML 5就要用21年。
不管怎樣,HTML 5可能仍是今后5到10年最前沿的技術(shù)之一。那些希望馬上看到實(shí)際應(yīng)用效果的早期采用者可以這么做,盡管應(yīng)用有限。如今網(wǎng)上有許多試點(diǎn)項(xiàng)目和演示網(wǎng)站展示了這項(xiàng)新標(biāo)準(zhǔn)的各項(xiàng)功能,關(guān)鍵在于選擇合適的瀏覽器。比如,F(xiàn)irefox對(duì)HTML 5功能特性的支持就不盡如人意; 基于WebKit渲染引擎的瀏覽器(包括Chrome和Safari)則支持得更好些。
同樣,Web開發(fā)人員可以隨意嘗試,可以用遵守當(dāng)前HTML 5規(guī)范草案的代碼來創(chuàng)建整個(gè)網(wǎng)站,不過效果對(duì)現(xiàn)有的瀏覽器而言可能各不相同。對(duì)關(guān)注HTML 5的開發(fā)人員來說,網(wǎng)上最好的資源之一是知名程序開發(fā)員Mark Pilgrim所寫的《Dive into HTML 5》,里面深入淺出地介紹了HTML 5 Video元素和目前瀏覽器支持的各種編解碼器。
目前,HTML 5標(biāo)準(zhǔn)方面還有太多工作要做,以至于有人甚至可能對(duì)它不屑一顧,覺得這又是一項(xiàng)日漸重要、但炒作過頭的技術(shù)。其實(shí),這種認(rèn)識(shí)是片面的,標(biāo)準(zhǔn)制定組織本來動(dòng)作就很緩慢。好在HTML 5方面的工作得到了各大廠商的大力推動(dòng),包括Adobe、蘋果、谷歌、微軟、Mozilla基金會(huì)、Opera軟件公司及其他廠商。這些公司認(rèn)識(shí)到需要升級(jí)已無法滿足當(dāng)前需求的HTML標(biāo)準(zhǔn),它們的工作有助于HTML 5的推廣和普及,因此,對(duì)Web開發(fā)人員來說HTML 5機(jī)遇實(shí)在誘人,不容忽視。
【編輯推薦】