在Google 、Mozilla 、Apple 等組織的努力下,Html5 標准已經從草案走向實現。目前幾個主流浏覽器的最新版本均已或多或少支持Html5的新功能,即使是過時的浏覽器也可以通過Javascript和插件來模擬相應的效果。
在開發RIA(富互聯網應用)的時候,是選擇占有率、兼容性、開發效率有限的Flash、SilverLight、Gears、JavaFX等插件,還是選擇與Javascpt、Html、CSS等無縫結合的新Web標准,是值得考慮的。當然也有人會擔心IE的頑固。對比十年前,Google也是在AJax技術不成熟的情況下開發出GMail和Google Maps等新型應用,贏得了用戶的認可,說明機會和風險是並存的。在又一次新技術浪潮來臨的時候,你能占據先機嗎?
繪制圖像Html5將通過兩項圖像技術來提供更華麗的界面:SVG 描述矢量圖,<canvas> 標簽和Javascrpt繪制位圖。會翻牆的話可以看看Google工程師的視頻介紹 。
兼容性方面,主流浏覽器中只有IE不支持,Google的svgweb 可以通過VML在IE上模擬SVG,而同樣是Google的excanvas 可模擬canvas。
雖然2D世界還在發展中, OpenGL的WebGL 和Opera的3D Canvas 已經把手伸向3D,不用太久魔獸世界這樣的大型3D游戲也會出現在浏覽器上。
視頻音頻使用<video>和<audio>標簽即可直接播放視頻和音頻,並通過Javascript接口控制。目前有爭議的是解碼格式,至少要支持OGG和H.264兩種文件,再加上傳統的FLV,視頻網站又要多准備很多塊硬盤了。不過對於已經支持Html5的YouTube 來說應該不是問題。
兼容性方面,Html5-now Javascript庫會根據浏覽器的不同 提供Flash、QuickTime、Java三種播放器作為補丁。
地理位置經過用戶許可後可獲得當前用戶的地理坐標,以提供更加本地化的服務。根據使用android的經驗,硬件會嘗試電信、WIFI、GPS等盡可能多的手段去定位。
訪問Google Maps的Where Am I ? 就可以知道你的浏覽器是否支持,目前好像只有Firefox。Google Gears則是另一種選擇。
本地存儲Html5提供兩種存儲方式:key-value方式的Local Storage和數據庫方式的Web SQL Database。
對於IE8以前的版本,local-storage-JS 可以在沒有Local Storage情況下用cookIE去替代。另一個Javascript庫PersistJS 則可從Gears、Local Storage、Web SQL Database、Global Storage、Flash、IE、cookIE等多個存儲方法逐一嘗試,以便最大限度的兼容。
離線應用有了本地存儲之後,通過Html元素的manifest 屬性中指定哪些程序和資源文件需要緩存下來,結合離線 API 就可以在沒有網絡的時候繼續運行程序,待網絡恢復後再與服務器同步。目前只對非IE的浏覽器有效,IE下需要使用Google Gears。
後台計算對於計算量較大的程序,由於Javascript單線程執行,容易讓浏覽器陷入假死狀態,Web Worker技術正是為了解決這個問題。每個worker會使用各自的線程在後台運行,與DOM環境完全獨立,並通過本地存儲交換數據。
目前只支持非IE浏覽器。如果不能放棄IE的話還是推薦利用Flash計算,性能比Javascript好很多,類庫也比較豐富。
網絡通信Web Sockets 可以提供一個socket持久通信連接,以替代問題多多的Comet或是AJax輪詢的方案。同樣只支持非IE浏覽器,在IE上web-socket-JS 利用Flash來實現。
DOM5標簽增加了更多類型,如<article>、<nav>、<footer>等語義標簽,時間、顏色、范圍、組合框等<input> 類型 ;響應拖拽 、onhashchange 、onerror等事件。這些特性Html5-now 通過Javascript進行了模擬