認識HTML5 (一)緣起與差異

  網路上關於HTML5的文章很多,各種說法也傳言甚囂,基本的認識從WIKI上面應該是可以了解到十之八九,在本文撰寫的同時標準都還在制定中,此教學是為了所上的一堂課中的一個部分所撰寫,如需引用請註明出處。不論商業上的戰爭如何發展,HTML5的演化都其來有自,基於雲端概念的”再”炒作,所有大廠都看準下一個資訊時代大餅,策畫著借由瀏覽器主導雲端的端(Client)口市場,為了達到這個目標各家瀏覽器都認同必須將瀏覽器再提升到新的境界,以滿足即將到來的商業服務型態,距離標準制定完成還有一段時間,變數也很多,知己知彼百戰百勝。

一、緣起

  超文件標示語言(HyperText Markup Language,簡稱為HTML)從1982年僅以純文字格是為基礎誕生以來,經歷電腦及網路發展迅速,從一開始規格鬆散漸漸的標準化後,成為了目前我們隨處所見的網頁的宣告標準,早期發展目標僅是提供使用者可以在網路上閱讀圖片文字等需求,所以至1999年所制定的4.0.1這初步的需求已經不再能滿足所有使用者的需求,因此當時W3C首推XHTML的標準試圖來解決一些以往HTML(4)以前所無法完成的工作和新的標籤,然而使用者的需求隨著硬體提升和網路頻寬倍增,已經無法被傳統的閱讀模式所滿足,大量的多媒體需求造就了諸如Flash這類需要掛載瀏覽器外掛的盛行,但也透露出了現有瀏覽器已漸漸無法滿足眾多的需求。

  隨著網路頻寬的成長和無線網路環境的普及,攜帶行裝置諸如平板電腦和智慧型手機已經慢慢可以滿足一般使用者在電腦上的使用需求,而在這些裝置上瀏覽網頁或使用網業服務都已經是發展得相當成熟,而勢必在往後會有更多成熟的服務透過網路來實現在這些裝置上,尤其是象徵下一代電腦世代的代名詞─雲端,也都需要仰賴如此的結構加以發展,因此讓瀏覽器跳脫舊有的閱讀取向設計,成為全功能取向的發展模式已經勢在必行,HTML5草案前身名為Web Application1.0其發展意圖再明顯也不過了。

  HTML5實際上是由WHATWG於2004年提出,WHATWG全名為Web Hypertext Application Technology Working Group,意指網頁超文本應用科技工作小組,推動成員有Opera、Mozilla基金會和Apple,Google…等瀏覽器廠商,2007年時W3C接納並成立新的HTML5團隊,於2008/1/22發布第一分草案,時至今日期規範仍在制定中,而預計最快到2012年才會提出建議候選版,HTML5大致上分為三個系統,一個是W3C正在標準化,以技術文件〈Technical Report,TR〉形式公佈,網址為http://www.w3.org/TR/html5,其次為W3C公佈的開發版規範,網址為http://dev.w3.org/html5/spec,最後則是WHATWG所公佈的規範,網址為http://whatwg.org/html5

二、差異

  究竟HTML5和我們已知的HTML技術有甚麼不同,首先我們要了解HTML5是許多規格的總稱,而一些主要的差異性則包含標籤的異動,以往許多的效果我們會使用類似<div>之類的標籤,然而自定義標籤一多,不但管理麻煩,在資料蒐尋上也是一個問題,而在HTML5的規範下,許多常用的功能有了自己的標籤,例如<audio>和<video>使插入聲音和影片變得更簡單。新的解析順序不再基於SGML(Standard Generalized Markup Language,SGML),也就是標準通用標示語言,整體來說,HTML5提供的新功能特點大致上如提供更豐富的網頁應用程式、更趨近於語意的標記、更高的無障礙性、更高的相容性。

  廣義的HTML5包含了HTML/XHTML的文法和可使用的元素、屬性、相關的API,還有例如Web storage、Sockets…等,雖然後者皆為獨立規格,旦這些API和HTML5在至定規格與積極導入的時間重疊,因此歸納在廣義的HTML5底下。

HTML原本是編寫文件而設計的技術,如前所述受到諸多限制,而以往的網頁應用程式在本機檔案讀取上也處於劣勢,使用選取表單時如同時選擇多個檔案也無法完成,在HTML5中將解決這樣的窘境,具體來說透過HTML5及相關API可以獲得諸如底下的功能:
●播放動畫或是聲音〈標籤audio和video〉
●操作2D繪圖功能〈canvas標籤〉
●離線狀態使用網頁應用程式〈Application cache〉
●跨網域通信〈Cross-Document Message,XMLHttpRequest Cache Level2〉
●用戶端資料儲存〈Web Storage、Web SQL Database…等〉
●背景執行運算〈Web Workers〉
●執行伺服器來的資料堆播〈Data Push〉
●與伺服器間的雙向通訊〈Server-Sent Events,Web Sockets〉
●讀取本機檔案〈File API〉
  上述的技術皆是以目前的HTML+Javascript無法實現的功能,而以賴這些功能則能設計出不亞於桌面應用程式的網路應用程式。新導入的標記使得網頁語言的撰寫更加人性化,除此之外也能讓搜尋引擎更精準的讀取資料,延伸應用上對身心障礙人士是一大福音,具體新增的標籤例如定義區段的頁首有header標籤,頁尾則有footer,address標記與區段相關的資料,time可以直接定義時間,nav可以定義導覽列,section可以定義泛用區塊…等。

  按照W3C的推估REC〈Recommentation〉大約是在2022年三四季,但是事實上根據WHATWG的預估,HTML5達到CR〈Candidate Recommentation〉,開始徵詢瀏覽器廠商實作的時間點為2012年左右,也就是說目前應用程式尚不須具備HTML5所有的功能,許多流覽器廠商正全面展開HTML5實作的推展,因此已經有許多可利用的HTML5功能在各瀏覽器開始被實現,尤其是研發者需求高的功能,瀏覽器的支援度測試可以到http://html5test.com/來實測,不過測試結果於現階段而言只是參考,畢竟最樂觀的實作也要等到2012年,即便如此早一點入門在今後也能比較早銜接。

  接下來會有一些for教學使用之文章未必會全部公開開放,加密部分請多包涵,之前互動良好的網友如果有需要可以透過mail或msn與我索取解密密碼。