HTML5開發:原理與實現

openkk 12年前發布 | 35K 次閱讀 HTML5 前端技術

        在這篇文章中, W3C 瀏覽器技術核心標準工作成員 Mike Smith 談論了 HTML5 到底是什么,并給出了一些對開發人員有用的資源,可以讓他們跟進不斷演化的標準。

HTML5開發:原理與實現

        我們正處于 Web 平臺更新換代的過程之中。HTML5通常被用來描述這一過程,盡管更新換代中的技術并不局限于 HTML5 標準所定義的特性。

        我使用了“Web 平臺”(Web platform)這個術語,代指能被 Web 瀏覽器支持的一系列協議、格式以及 APIs。開發者使用這些特性來構建時新的一些應用,這些應用支持社會交互,并且充分利用了設備的能力,比如照相功能、麥克風功能以及 GPS 功能。HTTP、TLS 以及 WebSockets 是 Web 平臺中的一部分協議;HTML、CSS 以及 Javascript 是 Web 平臺格式中的一些例子。Web 平臺中的 APIs 包括 Geolocation API 以及針對 元素的 2D drawing API 等。

        最終,如果一個特性能被廣泛實現,并且開發人員經常使用它來創建穩定的用戶體驗,那么這個特性就成為了 Web 平臺的一部分。World Wide Web Consortium (W3C)功不可沒,它讓股東們坐到一起,統一開發一些免費標準,并創建配套資源,如測試集以及驗證程序。

        標準作為一個共享協議來說,是非常有用的,但是 Web 平臺包括大量不同成熟度的技術,這些技術并沒有都標準化。當開發者使用這些技術的時候,就會遇到一些實際的問題了,其中包括:

  • 我該如何減少 special-case code?
  • 哪些代碼現在是足夠穩定可以讓我使用的?
  • 對于那些沒有最新瀏覽器的用戶,我該如何處理?

這些問題的答案隨著時間發生變化,因此開發者已經制定了切實可行的解決方案,如 fallback 和“polyfills”(這將在稍后進一步解釋)這些方案能讓內容在老的瀏覽器以及最新的瀏覽器中都可用。在這篇文章中,我并沒有關注 HTML5 標準的狀態,而是探討了一些有用資源,這些資源可用幫助開發者開始使用現在的開放 Web 平臺技術(Open Web Platform technology)。這些資源闡明了使用 HTML5 的“原理與實現方法”,對標準進行了補充,并最終能加快部署。

        platform.html5.org

        對一個忙碌的開發人員來說,他該如何跟進最新的特性,了解什么 fallbacks 以及、polyfills(如果有的話)是可以用的?我編輯了一個網站, platform.html5.org,它可以讓你了解構成 Web 平臺的最新技術。(它是由 github repository 支持的,我非常鼓勵你來幫助維護這個站點,只需要使用 forking the repo 就可以了,并發送更新請求)。

        這個站點將技術進行了分類,如繪圖和排版、多媒體以及存儲。站點上的圖標代表了每個技術的成熟度。綠色的小旗幟表示一個特性可以使用了。黃色閃電代表“需要謹慎使用”。然而,這些都只是很粗略的指示;要想真正了解這些特性,你需要點擊后面的一些有用的鏈接,如下所示:

        特別的,HTML5 Please site 值得作進一步的評論。它是由 H5BP  developer collective( HTML5 Boilerplate 背后的開發者小組)創建的。它根據名字列出了各個特性,并對每個特性的成熟度做出了高屋建瓴的描述。它還展現了一個狀態面板,其中顯示了各個特性的狀態信 息(可以使用/小心使用/避免使用, use/caution/avoid)。在某些情況下,”caution” 和”use”關鍵字后附加了”with fallback” 或 “with polyfill”。在有”with fallback”的情況下,你可以擴大該面板查看究竟如何為該特性提供 fallback。

        polyfill 是指一段 Javascript 代碼,作為一個特性的某種 shim;也就是說,它模擬了一個將來的 API,這個 API 為老的瀏覽器提供 fallback 功能。

        HTML5 Please 的站點管理者讓任何人都可以很容易為這個站點做貢獻,他們在每個面板上都提供了一個“編輯該信息”(”Edit this info”)的鏈接,讓你可以創建頁面內容的副本,并將其提交給該站點。(該機制是由 a github repository 支持的,任何人對內容的修改都會作為 pull requests 提交)。該站點的維護者將會對內容進行審查并合并內容。

        有時候你希望能看到比 HTML5 Please 所提供的信息更詳細的一些狀態信息。例如,你也許想確切知道哪些瀏覽器支持某個特定的瀏覽器,以及每個瀏覽器的哪些版本支持它,或者在移動瀏覽器中,特性 受到什么程度的支持,以及那些瀏覽器的 OS 版本是什么。這時候,你就需要查看 When Can I Use…站點了。

        When Can I Use 是由 Alexis Deveria 維護的。他跟進大量特性的狀態,并在新版本的瀏覽器發布時更新站點。如果有某種特性是你想要了解但 When Can I Use 站點上還沒有的,你可以 建議該站點加上

        現在記錄在 When Can I Use 上的每一個特性都有一個表,表中有一列是主流的桌面瀏覽器(IE, Firefox, Chrome, Safari 以及 Opera),一列是主流的移動瀏覽器(iOS Safari, Opera Mini, Opera Mobile 以及 Android Browser),每一行是每個瀏覽器的版本號。和其他站點一樣,用顏色標明了每個特定瀏覽器版本對一個特性的支持度( support/partial (部分支持) , support/no (不支持) , support/unknown (不確定是否支持))。

        例如,可以看看  CSS Counters 受到的支持程度。充滿綠色條目的表說明該特性受到很好的支持。其他支持不是很好的特性是用紅色標出的。

        When Can I Use 站點中的每個特性表都提供了一個”see-also”鏈接到相關特性的表,還有到第三方站點的鏈接,這些第三方站點提供了這些特性的使用信息,教會你如何使用這些特性進行開發。

        MDN (Mozilla Developer Network)是 platform.html5.org 和 When Can I Use 都加了鏈接的站點。可以將 MDN 看作”how can I use”特性使用指南。例如,如果你想要實現 Web Workers,需要一些代碼示例以及鏈接到有詳細信息的資源,那么,MDN 上就有個頁面是關于  使用 Web Workers 的,它對于入門非常有幫助。

        和 HTML5 Please, When Can I Use 以及 platform.html5.org 一樣,MDN 也是非常歡迎大家做貢獻的,并讓這個過程比其他站點更快捷簡單:整個站點就是一個 wiki,所以一旦你創建了一個賬戶,你就能編輯任何頁面。

        測試集(Test Suites)

        對于評估一個特性的成熟度來說,沒有什么方法比擁有一個完整的測試集更好了。你可以自己運行測試集,并分析結果。對于 Web 平臺來說,并沒有一個集中的庫,也沒有一個單獨的地方可以讓你看到所有結果,但是 W3C 已經開始著手建立一個 共享測試框架站點,W3C CSS Working Group 也在建立一個 針對 CSS 的測試框架站點

        這些站點讓你可以瀏覽各個瀏覽器以及各個瀏覽器版本對不同測試集的結果。你也可以在你自己的瀏覽器中運行測試集,并提交結果,讓結果整合到框架結果數據庫中去。例如, CSS 的多列布局模塊測試集的結果數據,或者  可以讓你自己在瀏覽器中運行測試集的啟動頁面

        結論

        前面提到的站點可以幫你跟進新出現的 Web 平臺。我希望隨著平臺的成熟以及更多人分享他們的代碼和經驗,更多有用的站點能夠出現。我很樂意你去使用我提到的這些站點,并將你自己的發現提交到這些站 點,以便讓關于 Web 平臺的高質量的、最新的信息讓大家都能共享。

        原文鏈接: Developing in HTML5: The What and How

來自: www.iteye.com
 本文由用戶 openkk 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!