HTML5筆記(1) - HTML5的定義
HTML是什么
平時在看一種新技術的介紹時,我最喜歡看的是按照“它是什么”和“它不是什么”這樣的邏輯來闡述的文章。不過我暫時還沒能力這么寫...
HTML首先是W3C制定的一套規范和定義,而不是具體實現。就好比TCP/IP是一套協議,而世界上有很多套TCP/IP協議的實現:你既可以用C/C++來實現它,也可以用Java等其它語言來實現。瀏覽器是最常見的一種實現和支持HTML的應用,但它既不是唯一(其它如Yahoo的Widget引擎),也不僅僅包括HTML(例如插件和各種擴展等)。HTML往往不會單獨出現,現在最流行的技術就是HTML+CSS+JavaScrip+AJAX。
HTML提供了一種技術,使得全世界的網頁編程人員能夠以統一的語法規范來編寫網頁,以其為載體來呈現文字、圖形、動畫、聲音、表格、鏈接等內容,從而帶給互聯網用戶統一的互聯網體驗。
目前世界上流行的絕大部分網頁都是用HTML4編寫的,而HTML5是前者的升級版本。HTML5也并不是從一開始就確定的,早些時候W3C的XHTML工作組,他們希望用具有更嚴格語義和語法的XHTML 2.0,同時也是一個徹底重構的激進版本,來替換HTML4,但是這一計劃內部受阻,甚至連互聯網和W3C的初始化人Tim Berners-Lee都公開發表博文表示不同看法,所以后來HTML5才被扶為正統。(更多背景請看這里:http://blog.csdn.net/Oneway102/archive/2010/11/18/6019413.aspx)
HTML5包括那些內容
很多時候我們提到HTML5時,所指可能并不一定嚴格相同。我用自己的話來表達,就是狹義的HTML5和廣義的HTML5。
狹義上的HTML5常常指HTML本身,甚至僅僅指代基于XML的HTML標識(Tag)及其相關語法。你如果去上一些培訓課,就會發現這就是老師大部分時間都在教的內容和范例。HTML5相對于HTML4而言最大的亮點主要在以下幾個方面:
- 增加了對Canvas、Video和Audio等標簽的支持,多媒體和繪畫、甚至動畫的展現能力得到極大的增強
- 增加了一些更具語義的標簽或接口,例如aside,header,footer等
- 修改或廢棄了一些HTML標簽和語義,如新表單特性,Marquee,frameset等
- 建議將顏色/尺寸/對齊排版相關的屬性都移到CSS中,HTML5主要負責網頁的布局
廣義上的HTML5則包括網頁的前端技術,即:狹義的HTML5 + CSS3 + JavaScript + Web Application API,可能還包括對SVG、插件等的支持。其中的Web Application API包括了一些HTML5最重要、最令人激動的特性(既然是API接口,說明這也僅是一套規范定義,具體每個瀏覽器實現是不一樣的):
- Server-Sent Events:服務器發起的消息事件(暫且這么翻譯吧...),輕松實現服務器端發起的更新,類似Push機制。注意它是單向的
- Web SQL Database:客戶端可以以SQL的形式將數據保存在本地數據庫中(不知為何Web Application工作組說他們不在維護這部分文檔)
- Web Sockets:客戶端可以利用WebSocket協議和主機進行雙向通信,比XmlHttpRequest更加強大、高效和減少流量
- Web Storage:客戶端的本地存儲能力,包括Session相關(例如網頁訂單的狀態)和全局相關數據(例如地圖數據和游戲關卡信息等)
- Web Workers:允許客戶端端像C++等高級編程語言那樣,將一些耗費時間的純運算操作,以類似線程的方式來運行在非UI線程中,并以消息(Message)機制進行通信
關于Web Application API
這是我個人的看法:Web Application API的雛形其實在HTML4時代就已經存在,Yahoo、Apple等公司各自推出的Widget規范中就定義了一些基于不同平臺實現的擴展接口,其目的就是要由網頁向應用升級,既能兼容W3C的HTML規范,又能兼具本地應用(Native App)的一些特性;既像HTML網頁那樣那樣易于部署和無縫升級,又兼有本地應用的強大功能。
而這也正是制定Web Application API的主要目的:兼具跨平臺和強大功能兩大特性。
Web Application API原本可能也是作為HTML5規范的一部分的,但是工作者在編寫的過程中發現,它們會使HTML5變得十分龐大,再加上這些特性本身比較獨立,可以作為接口而不是語法來定義,于是就把它們歸到Web Application 1.0這個大規范集來統一編寫,所以嚴格來講它們并非HTML5的一部分。
所以,從這個角度而言,HTML5其實不是全新的技術,HTML5其實就是“擴展的HTML4 + 若干標準封裝的操作系統接口”。
小結
所以在我看來,HTML作為一套獨立于平臺的標準規范,它最偉大的貢獻在于其在發展過程中得到了各大廠商跨平臺性的支持,讓全世界的互聯網用戶得以不用關心其背后的技術細節,而獲得相對比較統一的互聯網體驗。再往拔高的層次來說,它就像現實世界中統一的電壓、單位制式,甚至是統一的經濟和政治制度,全世界人民正是基于這一平臺,才能實現知識的扁平化,以及交流的無縫化。