HTML5
似乎是目前互連網最為火爆的名字了,因為整個互連網幾乎完全都建立在HTML的基礎之上,雖然無
論後台技術如何發展,前台基於瀏覽器和HTML的局面仍然是最為重要的,因為畢竟web
應用最終還是基於HTML進行展示。而備受瀏覽器廠商追捧的HTML5
到底能帶來什麼變革呢?下面是摘自開源中國社區的一篇文章,希望能給廣大web愛好者一些啟示。
現在的 HTML5
就像當年嶄露頭角時的 Ajax
,有人在做,但不知道叫它什麼。最近,蘋果在 HTML5 上大做文章
,而著
名的 Web 設計師 Eric Meyer 則提出了 Web
Stacks
的概念。Alex Kessinger
是 Yahoo 的一名前端工程師,本文是他對
HTML5 應用現狀與前景的思考。
術語
首先說說 HTML5 應用中的幾個定義。
HTML5
HTML5 最好的定義來自 Mark
Pilgrim
的 Dive Into HTML5
:
“HTML5 是繼 HTML4.01,XHTML 1.0/1.1 之後的下一代 HTML
“
值得一提的是,我們或許能看到 HTML6,然而按 Pilgrim 在 WHATWG 部落格
中
的說法,下一代 HTML 很可能去掉版本號碼這一概念。
應用
來自 Wikipedia
的解釋:
“應用程式是電腦用來執行特定任務的軟體
“
HTML5 應用
從使用者的角度,HTML5 應用和其它的電腦應用程式還不完全一樣,但已經很接近。從開發人員的角度,HTML5 應用是一些基於
HTML,JavaScript,CSS 的程式,它們使用開放技術,可以離線使用,可以取代諸如 Silverlight 及 Flash
等專用平台的部分工作。或者說,多年來,你用來建立 Web 頁面的東西,現在可以用來建立類似案頭和智能手機程式的應用。
開源模式帶來轉變
O’Reilly 創始人,Tim O’Reilly,一位開源的支援者,曾在《Open
Source Paradigm Shift
》中如是說:
“IBM 對個人電腦設計的商品化使利潤從硬體轉移到軟體這一層面,而開源將帶來新的財富
“
價值在不同的層面轉移,HTML5
將成為新的層面,商品的價值在下降,現時的瀏覽器已經成為商品,但這並沒有問題,只要它們都遵守標準。人們說,我們可以將作業系統置入瀏覽器中,但這行不
通,如果我們可以從過去的經曆中學到些什麼,那就是,不能簡單照抄過去的模式,好比廣播到電視的變遷,你不能簡單地在一個播音員面前放台攝像機完事,將操
作系統置入瀏覽器未必比 HTML5 離線應用本身更有價值。
發布渠道的重要
諸如 蘋果市集,Android 市集一類的渠道將成為主導,另外,一些新的,象 Valve 遊戲渠道,Netflix
電影渠道一類的東西將會出現,在”雲“時代,這些發布渠道將像案頭時代的作業系統一樣用來對使用者進行組織和歸類。
我們是如何到達現在這個階段的?
有兩個關鍵的因素。
感謝 Web 標準
儘管瀏覽器市場並不統一,但至少他們都運行 HTML,JavaScript 和 CSS。當我們希望通過 Web
推出一些東西的時候,我們知道,無論如何,使用者都能看到,然而你能想象人們都自己定義 Web 時的情景嗎,假如有人不使用 HTTP協議,或者不使用
HTML,那才是世界的末日。W3C 一類的組織讓各個瀏覽器廠家都保持同一個方向。
還好,我們並沒有很多渲染引擎
瀏覽器並不好做,數十億的網頁,參差不齊的代碼,這些東西讓獨立開發人員沒有機會單獨設計瀏覽器,因此,有能力設計瀏覽器的始終是那麼一小撮廠
商,事 實上,時至今日,我們只有四種主要的瀏覽器渲染引擎,Trident (IE), Gecko (Mozilla, Firefox),
WebKit (Chrome, Safari), 以及 Presto
(Opera),而眾多瀏覽器都是建立在這些渲染引擎之上的。這意味著,不管在什麼樣的裝置上,我們不用太擔心它使用什麼樣的瀏覽器,不管什麼裝置,只要
它有一個瀏覽器,就有一個可以運行 HTML5 的環境。
標準何日面世?
關於 HTML5 成為標準的時間,Ian
Hixie
的說法最受認可:
“根據估計,HTML5 直到 2022 年才會形成 W3C 推薦標準
“
然而,雖然標準的形成尚待時日,但瀏覽器廠商已經在實現各種 HTML5 功能。
功能探測 vs 瀏覽器探測
如果你是開發人員,你可以使用那些進階功能,但需要進行功能探測並提供漸進式設計。坊間有大量的功能探測庫,如 Modernizer
,另外,Mark
Pilgrim 有一個清單,它可以讓你探測任何功能
。
離線 API
離線 API 是一切 HTML5 應用的基礎,不單單是離線資料的事,對開發人員來說,擁有本機存放區(localStorage
)
自然很好,但如何讓程式完全離線運行?Application
Cache
是答案。如果不能離線儲存源檔案和資料,我們就無法實現離線的 HTML5 應用。
我們目前有幾種離線儲存機制,簡單的如 localStorage
和 SQL 儲存引擎,已經有一些瀏覽器在支援了,而最新的明星是 Indexed Database
,它得到了所有主流瀏覽器
支援。這些離線儲存應用和資料的能力,是 HTML5 的基礎,目前,Webkit,Firefox 已經可以實現,而 IE9 也即將實現。即時
IE9 的支援還需要等待,想一下,最需要離線應用的場合是哪裡,自然是智能手機和迷你筆記型電腦,智能手機多數都是用 Webkit。
W3C Web 應用程式工作群組:HTML5 應用的下一步
W3C WebApp
s
標準已經做了大量工作,包括 API 及 HTML5 Web 程式細則。
HTML5 應用的打包部署
HTML5
apps – QuirksBlog
部落格文章中說,”對於本地/離線 HTML5 應用,W3C Widget packaging and
configuration
是首選機制,並將成為事實標準,很多廠商已經開始對之進行實現。W3C Widgets 支援任意平台的 Vodafone S60 和
Samsung 手機
, Opera
案頭與行動瀏覽器
,Bolt 瀏覽器
以及 Windows
Mobile 6.5
。BlackBerry
也支援,不過需要特殊的 Java
包。
“
這些都是標準,本質上講,如果你有一個 HTML5 應用,它就會包含 HTML, CSS, 以及
JS,這些標準只不過偶是協助開發人員將他們的程式打包發行,如果你熟悉 PEAR
,
它們是很相似的概念。你可能需要一些中繼資料,告訴系統你的程式是如何打包在一起的,在支援這些標準的平台上,你就可以保證你的使用者可以順利運行這些程式。
其它
HTML5 還有更多 API 可以協助開發人員建立應用,這些 API 可以讓你的程式訪問諸如本地檔案
,網路攝影機
,SOCKET 通訊服務
,
以及硬體動畫加速等。這些 API 僅僅是開端,這樣的 API 後期會越來越多。
HTML5 程式可以應用在哪裡?
當然是瀏覽器,如果一個裝置擁有一個瀏覽器或渲染引擎,而且這個引擎是現代引擎,它就可以運行 HTML5 程式。HTML5
程式會應用在以下幾種場合。
案頭
如果你擁有一個符合 Web 標準的瀏覽器,就可以運行 HTML5 應用。案頭仍然很重要。
指定網站瀏覽器
諸如 Gmail 一類的網站可以看做一個應用,使用專門的瀏覽器
運行,這
樣的瀏覽器沒有地址欄,是專門用來運行指定網站應用的,甚至可以製作一個安裝包來分發。以下資源值得一看,Prism
, Fluid
/Fluidium
以及 NativeHost
。
移動領域
這是 HTML5 最熱門的運行場所。iPhone 可以和很多程式整合,將你的程式顯示在它的今日案頭(這裡有一個教
程
),Android 也支援需要的 HTML5 API,但整合不夠好。未來幾年,支援 HTML5
的行動瀏覽器將如雨後春筍,將你的應用向 HTML5 遷移是很明智的,因為 HTML5 將很好地運行在這些裝置上。
跨界領域
已經有公司即將發布電視平台,Google
TV
以及 Apple
TV
,Google 表示,他們的 TV 平台將支援 HTML5,我們不知道蘋果的 TV 平台將支援什麼,鑒於他 們最近對 HTML5 的一系列炒作
,
很有可能也支援。另外一些電視盒廠商,如 Boxee
業已開始支援 HTML5,如果你想為 Boxee 開發應用,與其專門為它開發,不如直接使用 HTML5。
跨界領域擁有大量的平台,那些可以串連電腦的電視的數量在不斷增長,我們已經可以在電視上全屏觀看 YouTube,而備受歡迎的 Wii
則內建了 Opera。所有這些,都將藉助 HTML,CSS 與 JavaScript。
HTML5 市集
Eric Meyer 講到了 HTML5 應用程式問題,他將 HTML5 應用成為 Web
Stack Apps
, HTML5 要獲得更多關注,可以建立
HTML5 市集
。Chrome
正在這樣做,而 Palm
已經有了一個這樣的東西
。
市集是很好的東西,開發人員可以直接得到報酬,而無需像現在這樣靠廣告維持,同時,使用者也將有一個地方去為他們的裝置尋找程式。
HTML5 市場前景
HTML5 在快速成長,值得所有人密切關注,最近的一兩年,會有很多公司進入這個領域,我們或許會在 Chrome
市集看到一些重量級廠商,我們也有希望在 Google TV 和 Apple TV 領域看到一些市集的出現。HTML5 會像傳統的
Flash,Flex,Silverlight,Objective-C 那樣,形成自己的生態系統。HTML5 將比 Flash, Flex,
Silverlight 以及 Objective-C 更容易出現在任何裝置。
對於年輕一代開發人員,HTML5 應當是他們首選技能,HTML5 會形成很大的市場,很有很多公司需要這方面的人才。
摘自: 開源中國社區