霸州迅騰建站正處于Web平臺更新?lián)Q代的過程之中。HTML5通常被用來描述這一過程,盡管更新?lián)Q代中的技術(shù)并不局限于HTML5標(biāo)準(zhǔn)所定義的特性。
我使用了“Web平臺”(Web platform)這個術(shù)語,代指能被Web瀏覽器支持的一系列協(xié)議、格式以及APIs。開發(fā)者使用這些特性來構(gòu)建時新的一些應(yīng)用,這些應(yīng)用支持社會交互,并且充分利用了設(shè)備的能力,比如照相功能、麥克風(fēng)功能以及GPS功能。HTTP、TLS以及WebSockets是Web平臺中的一部分協(xié)議;HTML、CSS以及Javascript是Web平臺格式中的一些例子。Web平臺中的APIs包括Geolocation API以及針對
<canvas> 元素的2D drawing API等。
最終,如果一個特性能被廣泛實現(xiàn),并且開發(fā)人員經(jīng)常使用它來創(chuàng)建穩(wěn)定的用戶體驗,那么這個特性就成為了Web平臺的一部分。World Wide Web Consortium (W3C)功不可沒,它讓股東們坐到一起,統(tǒng)一開發(fā)一些免費標(biāo)準(zhǔn),并創(chuàng)建配套資源,如測試集以及驗證程序。
標(biāo)準(zhǔn)作為一個共享協(xié)議來說,是非常有用的,但是Web平臺包括大量不同成熟度的技術(shù),這些技術(shù)并沒有都標(biāo)準(zhǔn)化。當(dāng)開發(fā)者使用這些技術(shù)的時候,就會遇到一些實際的問題了,其中包括:
- 我該如何減少special-case code?
- 哪些代碼現(xiàn)在是足夠穩(wěn)定可以讓我使用的?
- 對于那些沒有最新瀏覽器的用戶,我該如何處理?
這些問題的答案隨著時間發(fā)生變化,因此開發(fā)者已經(jīng)制定了切實可行的解決方案,如fallback和“polyfills”(這將在稍后進一步解釋)這些方案能讓內(nèi)容在老的瀏覽器以及最新的瀏覽器中都可用。在這篇文章中,我并沒有關(guān)注HTML5標(biāo)準(zhǔn)的狀態(tài),而是探討了一些有用資源,這些資源可用幫助開發(fā)者開始使用現(xiàn)在的開放Web平臺技術(shù)(Open Web Platform technology)。這些資源闡明了使用HTML5的“原理與實現(xiàn)方法”,對標(biāo)準(zhǔn)進行了補充,并最終能加快部署。
platform.html5.org對一個忙碌的開發(fā)人員來說,他該如何跟進最新的特性,了解什么fallbacks 以及、polyfills(如果有的話)是可以用的?我編輯了一個網(wǎng)站,
platform.html5.org,它可以讓你了解構(gòu)成Web平臺的最新技術(shù)。(它是由
github repository支持的,我非常鼓勵你來幫助維護這個站點,只需要使用
forking the repo 就可以了,并發(fā)送更新請求)。
這個站點將技術(shù)進行了分類,如繪圖和排版、多媒體以及存儲。站點上的圖標(biāo)代表了每個技術(shù)的成熟度。綠色的小旗幟表示一個特性可以使用了。**閃電代表“需要謹慎使用”。然而,這些都只是很粗略的指示;要想真正了解這些特性,你需要點擊后面的一些有用的鏈接,如下所示:
- HTML5 Please
- When Can I Use…
- MDN (Mozilla Developer Network)
- 其他一些提供了與特性相關(guān)的測試集的站點
特別的,HTML5 Please site值得作進一步的評論。它是由
H5BP developer collective(
HTML5 Boilerplate背后的開發(fā)者小組)創(chuàng)建的。它根據(jù)名字列出了各個特性,并對每個特性的成熟度做出了高屋建瓴的描述。它還展現(xiàn)了一個狀態(tài)面板,其中顯示了各個特性的狀態(tài)信息(可以使用/小心使用/避免使用,
use/caution/avoid)。在某些情況下,”caution” 和”use”關(guān)鍵字后附加了”with fallback” 或 “with polyfill”。在有”with fallback”的情況下,你可以擴大該面板查看究竟如何為該特性提供fallback。
polyfill 是指一段Javascript代碼,作為一個特性的某種shim;也就是說,它模擬了一個將來的API,這個API為老的瀏覽器提供fallback功能。
HTML5 Please的站點管理者讓任何人都可以很容易為這個站點做貢獻,他們在每個面板上都提供了一個“編輯該信息”(”Edit this info”)的鏈接,讓你可以創(chuàng)建頁面內(nèi)容的副本,并將其提交給該站點。(該機制是由
a github repository支持的,任何人對內(nèi)容的修改都會作為pull requests提交)。該站點的維護者將會對內(nèi)容進行審查并合并內(nèi)容。
有時候你希望能看到比HTML5 Please所提供的信息更詳細的一些狀態(tài)信息。例如,你也許想確切知道哪些瀏覽器支持某個特定的瀏覽器,以及每個瀏覽器的哪些版本支持它,或者在移動瀏覽器中,特性受到什么程度的支持,以及那些瀏覽器的OS版本是什么。這時候,你就需要查看When Can I Use…站點了。
When Can I Use是由Alexis Deveria維護的。他跟進大量特性的狀態(tài),并在新版本的瀏覽器發(fā)布時更新站點。如果有某種特性是你想要了解但When Can I Use站點上還沒有的,你可以
建議該站點加上。
現(xiàn)在記錄在When Can I Use上的每一個特性都有一個表,表中有一列是主流的桌面瀏覽器(IE, Firefox, Chrome, Safari以及Opera),一列是主流的移動瀏覽器(iOS Safari, Opera Mini, Opera Mobile以及 Android Browser),每一行是每個瀏覽器的版本號。和其他站點一樣,用顏色標(biāo)明了每個特定瀏覽器版本對一個特性的支持度(
support/partial(部分支持), support/no(不支持), support/unknown(不確定是否支持))。
例如,可以看看
CSS Counters受到的支持程度。充滿綠色條目的表說明該特性受到很好的支持。其他支持不是很好的特性是用紅色標(biāo)出的。
When Can I Use站點中的每個特性表都提供了一個”see-also”鏈接到相關(guān)特性的表,還有到第三方站點的鏈接,這些第三方站點提供了這些特性的使用信息,教會你如何使用這些特性進行開發(fā)。
MDN (Mozilla Developer Network)是platform.html5.org 和When Can I Use都加了鏈接的站點?梢詫DN看作”how can I use”特性使用指南。例如,如果你想要實現(xiàn)Web Workers,需要一些代碼示例以及鏈接到有詳細信息的資源,那么,MDN上就有個頁面是關(guān)于
使用Web Workers的,它對于入門非常有幫助。
和HTML5 Please, When Can I Use以及platform.html5.org一樣,MDN也是非常歡迎大家做貢獻的,并讓這個過程比其他站點更快捷簡單:整個站點就是一個wiki,所以一旦你創(chuàng)建了一個賬戶,你就能編輯任何頁面。
前面提到的站點可以幫你跟進新出現(xiàn)的Web平臺。我希望隨著平臺的成熟以及更多人分享他們的代碼和經(jīng)驗,更多有用的站點能夠出現(xiàn)。我很樂意你去使用我提到的這些站點,并將你自己的發(fā)現(xiàn)提交到這些站點,以便讓關(guān)于Web平臺的高質(zhì)量的、最新的信息讓大家都能共享。