2017年11月3日 星期五

ithome 非前端開發的HTML5觀點 百家樂 http://www.iwin9418.com

也許你的記憶如我一樣,對於HTML,還停留在HTML4配合JavaScript程式庫的年代,而HTML5,不過就是曾在2010左右喧囂一時的話題。實際上,HTML5已在2014年10月28日,由全球資訊網協會(W3C)完成標準制定,目前主流瀏覽器也有高度支援,那麼,在標準完成制定的三年之後,這樣的你,該如何重新認識HTML5呢?

HTML4之後的演化

有日在圖書館不經意看到HTML5的書籍,大致是2011至2013年出版,以電腦書週期來看,都頗有年代,回想上次看HTML5的資料,已是2010年左右。

由於當時標準尚未底定,瀏覽器上實現的功能不算充足,想說API可能還會變動,就沒繼續玩下去,另一方面,前端開發也不是自身熟悉與熱衷的領域,僅保持著關注的狀況,話雖如此,就我既有的印象,在近期談及前端開發的相關資料或書籍,多半還是HTML4.01加上JavaScript程式庫的資料。

當然,瀏覽器支援度應是造成此印象的原因之一,只是不禁好奇起來,當年各界極力吹捧後,HTML5現況到底怎樣?經驗告訴我,身為前端的半調子,從歷史發展重新瞭解會是比較好的切入點,2011年出版的《HTML5 Guidelines for Web Developers》(中文翻譯《現在就開始學HTML5》)有不少資料可參考,基本上HTML5構想起源在2004年左右,當時HTML4的發展已擱置六年之久(而HTML2到4的發展大致是五年)。

在接下來的發展過程,由WHATWG主導且與瀏覽器廠商共同合作的HTML5,以及由W3C主導的XHTML 2.0小組曾經是競爭狀態,在缺乏瀏覽器廠商支持,且未考慮現存的Web內容相容性的情況下,導致了XHTML 2.0的失敗,在2007年W3C成立新的工作小組,並邀請WHATWG的成員參與,後續不斷磨合下,才於2009年公開宣布HTML5草案。

讓HTML5甚囂塵上的原因,也來自於HTML5與Flash的戰爭,代表之一,就是Apple教主Steve Jobs的〈Thoughts on Flash〉,而YouTube也從對HTML5的實驗之後,全面擁抱HTML5,就今日來看,Flash在網頁與影片的開發戰場上,確實是輸了這場戰爭,而曾經有一時,HTML5應用程式也不斷地被拿來與原生App做比較,許多的評論文件中,都畫著一個標準通吃手機、平板、桌機等裝置的大餅。

然而,這塊大餅始終沒有實現,Facebook創辦者Mark Zuckerberg也曾2012年公開表示,以HTML5撰寫Facebook App,是他們犯過最大的策略錯誤,姑且不論這談話後續有些爭議性,這表示HTML5提供的API極為豐富,像是Geolocation、Local Storage、Drag and Drop、Application Cache、Web Workers、Server-Sent Event等(儘管有些後來是獨立於HTML5外的標準了),都是自前端應用程式盛行以來,開發者一直想要的功能特性。

在建立HTML5標準時,一個重大考量就是,新特性須基於既有的HTML、CSS、DOM及JavaScript,與其說是基於技術層面,不如說是基於長久以來的前端開發實作需求。在選擇或觀看HTML5的相關資料時,若是從技術層面著手,很容易因為大量的標籤、API,而落入五里霧之中;若能先思考現有基於HTML4、JavaScript下開發程式時,是怎麼實現相關功能,而在HTML5中會有哪些對應方案,將會有助於掌握相關元素,並暫時忽略那些不重要的細節。

以HTML5新的語意、結構元素來說好了,在這之前總是使用div結合id或class來實現,然而,div實際上是用來管理一組子元素,id與class屬性的特性值名稱可能代表各種需求,像是結構或者是樣式,因此搜尋引擎或者是開發者彼此之間,可能難以理解或誤解其中名稱之意義;Google曾於2005年的〈Web Authoring Statistics〉研究中指出,id與class的名稱會主導網頁結構,基於類似理由,那些經常使用的特性值,後來就成了HTML5的語意、結構元素。

認識這些元素的起點,其實在於須審視自己曾撰寫的頁面,有著何種結構或語意。若發現

沒有留言:

張貼留言