本節書摘來自異步社群《html5實戰》一書中的附錄a.2,作者: 【美】rob crowther , joe lennon , ash blue , grey wanish 更多章節内容可以通路雲栖社群“異步社群”公衆号檢視。
在這一節中,我們将概述一些符合whatwg的html living standard以及w3c的html5 family of specifications的技術。雖然,whatwg的規範并沒有一直被人叫做html living standard,但我們還是用這個詞兒來區分w3c的html5規範。在談到每一項技術時,都會連帶介紹w3c的相應規範以及本書所涉章節。
a.2.1 語義标記和表單元素
html5介紹的html元素改變了人們建構web應用與使用表單元素的方式。程式員們能通過data這樣的屬性來控制标記。這些屬性能在html元素中儲存重要的中繼資料。這是html最核心的東西,是以也包括在w3c的html5規範中。
第1章與第2章介紹了語義标記和表單元素的使用。
a.2.2 視訊及音頻(多媒體)
過去,web開發者主要依靠flash或其他插件來提供音視訊的支援,html5的和
<video></video>
第8章介紹了視訊及音頻。在附錄i中,還有一些更為前沿的視訊技術。
a.2.3 canvas和svg(互動性媒體)
canvas api和svg技術能讓開發者通過javascript來建立互動式的媒體。現今最流行的canvas api最初是蘋果在mac os x中的一個産品。開發者可以利用元素建立位圖圖像。雖然元素自身屬于html5的核心規範,但2d繪圖環境(實作繪制的javascript api)則在另一個單獨的叫作“html canvas 2d context”的規範中。另外還需注意的是,雖然webgl能使canvas顯示3d圖像,但3d繪圖環境卻并不屬于html5官方規範(詳情參看a.3節内容)。
svg技術誕生自大約2001年,是一個基于xml的語言。html5所做的不過是将svg元素注入到html頁面中(也經常能把svg注入到xhtml頁面中)而已。一定要記住的是,svg是html5的一個标準組成部分,而不是由html5所衍生出的一個規範。
第6章與第7章介紹了canvas、2d繪圖環境以及svg。第8章使用canvas來控制實時視訊,第9章則将其與3d繪圖環境結合起來使用。
a.2.4 存儲
html5還包含一些基于存儲的api。其中,屬于html5規範的是web storage與離線應用。
在w3c體系中,離線應用屬于html5的核心規範。線程和本地存儲則屬于web storage規範。這些都在第5章有所介紹。
a.2.5 通信
web通信(跨文檔通信與通道通信),伺服器發送事件,以及websockets都屬于html5的核心技術。在w3c體系中,它們分屬于3個規範:“html5 web messaging”、“server-sent events”和“websockets api”。這裡要注意的是描述傳輸資料的格式的websockets協定,它是由ietf(internet engineering task force,網際網路工程任務組)定義的。第4章與附錄f介紹了通信方面的内容。
a.2.6 xml http請求對象
在20世紀90年代末,這種api就已經存在于ie中了。在2000至2002年間,它通過firefox的實作被大量用于web應用中,進而促成了ajax(異步javascript和xml)的誕生。但是xhr(xml http request)從來沒有記錄在任何規範中,直到2004年,whatwg才為它制定了專門的規範。目前,w3c制定了關于xhr對象的專門規範,但由于xhr和ajax用途廣泛,知名度高,是以雖然嚴格來說xhr屬于html5技術,但本書也不會專門介紹它。