HTML 5倍受青睞,XHTML 2處境尷尬
前不久結(jié)束的Google I/O大會上,Google演示了一系列基于HTML 5技術(shù)之上的web應(yīng)該,其中包括離線存儲、用戶交互、2D繪畫等,并表示將來在Adroid和Chrome中加大對HTML 5的支持。微軟也表示在下一的瀏覽器中逐漸加入對HTML 5的支持。網(wǎng)上對HTML 5 和 XHTML 2的比較有不少很好的文章,都值得參考,這里我不想說太多技術(shù)上的東西,只談?wù)勛约簩τ贖TML 5 和 XHTML 2兩種標(biāo)準(zhǔn)的理解。
一、未來的Web都需要這兩種標(biāo)準(zhǔn)
HTML 5旨在提高網(wǎng)頁性能,增加頁面交互。HTML 5中增加了不少新的標(biāo)簽,如audio、video、canva等,其交互功能都大超過了XHTML 1.1t和HTML 4.01,這比完全依賴于JavaScript來實現(xiàn)這些功能效率更高更準(zhǔn)確。HTML 5讓頁面內(nèi)容更加豐富,使超文本更加名副其實。而XHTML 2.0更加注重頁面規(guī)范和可用性。在XHTML 1.1的基礎(chǔ)上,XHTML 2.0根據(jù)原定目標(biāo)——使Web語言逐漸由HTML過度到XML——做出了巨大改進。從Web標(biāo)準(zhǔn)的角度說,XHTML 2.0是一個飛躍,這一點HTML 5則做的不夠好。不過HTML 5還提供了另種解析方式,將MIME類型設(shè)定為 application/xhtml+xml時,瀏覽器會使用XML解析器對其進行解析,所以HTML 5的正確名稱應(yīng)該是X/HTML 5。
我們拋開HTML 5與XHTML 2中新增加的標(biāo)簽等不說,未來的Web需要更加強大的功能以實現(xiàn)更加豐富的頁面表現(xiàn),但是同樣未來的Web編寫應(yīng)該更加規(guī)范,更加體驗web的易用性,不過兩方面卻體現(xiàn)兩種規(guī)范中,雖然瀏覽器可以通過不同的命名空間來區(qū)分它們,但是我們卻無法在同一個文檔中同時使用兩種規(guī)范。
二、我們不需要兩種規(guī)范
HTML 5還有一個優(yōu)點是它的向后兼容性,HTML 4在HTML 5的命名空間中仍然可以使用,但是XHTML 2卻與XHTML 1.1出現(xiàn)了斷層,這也是XHTML 2.0的一個軟肋。HTML 5和XHTML 2的競爭實際上是瀏覽器廠商和W3C標(biāo)準(zhǔn)組織的競爭,其未來的結(jié)果很可能是一種妥協(xié)方案:瀏覽器同時支持兩種規(guī)范。這看似不錯,但是仔細(xì)想想,我們根據(jù)不需要兩種規(guī)范。因為最終結(jié)果是我們的web文檔只能是其中的一個,難道讓我們在實現(xiàn)強大功能的時候放棄更加優(yōu)秀的web標(biāo)準(zhǔn)?而且HTML 5和XHTML 2在標(biāo)簽上存在很大差異,這與HTML 4和XHTML 1.1區(qū)別完全不同,我們幾乎不需要去記憶哪個標(biāo)簽可能在HTML 4中使用哪個可能在XHTML 1.1中使用,因為他們在這方面幾乎沒有區(qū)別,但是HTML 5和XHTML 2不同,他們各自有不同的標(biāo)簽,如果你一不小心記錯的話,你可能會遇到不小的麻煩,這無論對于web開發(fā)初學(xué)者還是其他人員來說都將是個問題。
我的期望是HTML 5和XHTML 2即便真的作為兩種規(guī)范問世,那么他們的區(qū)別也僅僅是HTML 4與XHTML 1.1的區(qū)別。我們可以通過簡單修改命名空間(HTML不需要命名空間,但是X/HTML 5需要),少量修改代碼即可完成轉(zhuǎn)換。競爭是好的,但不要各自為政,相互融合相互借鑒才會產(chǎn)生好的標(biāo)準(zhǔn)。我知道W3C的工作組看不起WHATWG的自私自利,WHATWG也瞧上W3C的傲慢,但是所有的標(biāo)準(zhǔn)只有得到瀏覽器的支持才是有用的標(biāo)準(zhǔn),所有的瀏覽器都支持統(tǒng)一有約束力的標(biāo)準(zhǔn)Web開發(fā)才能進行。所以也許兩者最后成為一個標(biāo)準(zhǔn)才是最好的選擇。
三、也許一切都要等到十年后
XHTML 2已經(jīng)公布了第8個工作草稿,但是仍然存在一些問題,當(dāng)然最重要的問題就是瀏覽器的問題。目前瀏覽器無論對于XHTML 2還是HTML 5的支持都非常非常少,要比對CSS 3的支持還要少,所以當(dāng)我們真正可以使用它們來做開發(fā)工具的時候,也許是2020年了。不過,我們在一切還沒有成為現(xiàn)實之前,盡可能使之完美。
【編輯推薦】