張俊杰
(河南交通職業(yè)技術(shù)學(xué)院交通信息工程系 河南 鄭州 450000)
網(wǎng)頁設(shè)計(jì)越來越依賴Flash等插件支持視頻和音頻等組件以及高度圖形化和交互的應(yīng)用程序,帶來便利之時,同時也在制約著網(wǎng)頁設(shè)計(jì)的自由之路。HTML5作為HTML和 CSS規(guī)范的最新版本不再需要這些額外的瀏覽器組件來促進(jìn)此類功能,W3C預(yù)計(jì)HTML5在2022年將會成為主流。HTML5中增加了許多新特性,例如嵌入音頻、視頻和圖片的函數(shù)、客戶端存儲數(shù)據(jù)、交互式文檔等,通過制定如何處理所有 HTML元素以及如何從錯誤中恢復(fù)的精確規(guī)則,HTML5進(jìn)一步增強(qiáng)了互動性,并有效減少了開發(fā)成本,使得HTML5被廣泛認(rèn)為是計(jì)劃在 2010年出現(xiàn)的最重要的新技術(shù)之一。本文將探討研究HTML5的核心技術(shù)的革新。
HTML5的革新,可以總結(jié)為:語義明確的標(biāo)簽體系、化繁為簡的網(wǎng)頁富媒體技術(shù)、神奇的本地?cái)?shù)據(jù)存儲技術(shù)、不需要插件的動畫(canvas)、強(qiáng)大的 API支持。HTML 5讓人機(jī)交互,人網(wǎng)交互變得更加舒適,更加貼合用戶。以往對富媒體應(yīng)用與本存儲的支持乏力也不再是瀏覽器的切膚之痛,將Web從多變的內(nèi)容平臺推向標(biāo)準(zhǔn)化的應(yīng)用平臺。
表1 HTML4網(wǎng)頁與HTML 5網(wǎng)頁代碼對比表
隨著網(wǎng)頁內(nèi)容和形式的日漸豐富,僅用原有的xhtml標(biāo)簽去語義化顯然已經(jīng)力不從心,因此HTML5提供了一系列新的標(biāo)簽及相應(yīng)屬性,以反應(yīng)現(xiàn)代網(wǎng)站典型語義。我們寫出一個簡單的例子來分析其革新之處。
通過表1可以看到,我們用這些新元素來替換的是ID,這四個新元素:section、article、aside和nav,之所以說它們強(qiáng)大,原因在于它們代表了一種新的內(nèi)容模型,一種HTML中前所未有的內(nèi)容模型——給內(nèi)容分區(qū)。在此之前,我們一直都在用div來組織頁面中的內(nèi)容,div本身并沒有語義。但section、article、aside和nav實(shí)際上明確告訴你——這一塊就像文檔中的另一個文檔一樣。位于這些元素中的任何內(nèi)容,都可以擁有自己的概要、標(biāo)題,自己的腳部。
標(biāo)準(zhǔn)瀏覽器(比如Firefox、Chroome甚至新版的 IE)都可以帶引客戶直接跳轉(zhuǎn),HTML4網(wǎng)頁的問題是DIV的ID值是設(shè)計(jì)者給定的,DIV這個標(biāo)簽是無語義的,所以,瀏覽器并不知道哪個應(yīng)該是導(dǎo)航鏈接所在區(qū)塊。HTML5書寫的網(wǎng)頁,用新的標(biāo)記標(biāo)識出導(dǎo)航區(qū)塊,使得瀏覽器更好的識別網(wǎng)頁內(nèi)容。
另外HTML5還摒棄了許多冗余的代碼設(shè)計(jì),使得代碼的設(shè)計(jì)更加的簡潔明確。
聲音、動畫及一些非常生動的網(wǎng)頁,通過Sun、Adobe、RealAudio、微軟等公司開發(fā)的插件讓人耳目一新,然而混亂的是插件的接口是向所有人開放的,安全性讓人堪憂。其中最有名的插件就是Flash,我們幾乎要經(jīng)常更新插件,其他類似的插件更是數(shù)不勝數(shù)。
在 2007年,Opera在 Web Hypertext Application Technology Working Group (WHATWG)工作草案中提議使用 <video>標(biāo)記,其目的是“將視頻制作成一個的網(wǎng)絡(luò)組件,以一個輕松、開放的解決方案來將視頻整合到網(wǎng)頁、且在瀏覽器上本地支持視頻”,比起插件所需的冗長的對象嵌入標(biāo)記,它更優(yōu)雅更易于操作?,F(xiàn)在,在網(wǎng)頁中實(shí)現(xiàn)視頻的代碼簡單且干凈。
如需在HTML5中顯示視頻,您所有需要的是:
當(dāng)前,video元素支持三種視頻格式:
Ogg=帶有Theora視頻編碼和Vorbis音頻編碼的Ogg文件
MPEG4=帶有H.264視頻編碼和AAC音頻編碼的 MPEG 4文件
WebM=帶有VP8視頻編碼和Vorbis音頻編碼的WebM文件
當(dāng)然運(yùn)用插件與否取決于你想做的事情。如果你想建立一個專業(yè)的3D世界,正如在復(fù)雜的Flash和Shockwave游戲中所看到的那樣,你還得依賴插件技術(shù),因?yàn)檫@些插件技術(shù)可以直接訪問視頻硬件,運(yùn)行3D游戲。即便如此,HTML5帶來的資源節(jié)約還是足夠讓我們震驚的。
過去,網(wǎng)頁中顯示的圖像來自于GIF或JPG圖像,而在HTML5中,圖像可能并不是直接來自圖像文件,而是由某個Canvas(畫布)對象臨時生成的。網(wǎng)絡(luò)上已經(jīng)出現(xiàn)了大量的非常好的圖形庫,這些圖形庫的存在使得動態(tài)生成圖像更加容易。
如今,JavaScript層可以根據(jù)數(shù)據(jù)進(jìn)行計(jì)算然后繪制出圖形,完全可以讓網(wǎng)絡(luò)上的一切變得更加生動,而純文本內(nèi)容越來越少。HTML5環(huán)境讓W(xué)eb開發(fā)人員更易于開發(fā)出復(fù)雜的圖像。這里可能存在的一個問題是,這種圖像的處理可能會帶來很大負(fù)擔(dān),比如對客戶端的處理器處理能力有一定要求,但是開發(fā)者不應(yīng)該因擔(dān)心影響性能就不讓用戶體驗(yàn)生動的圖像,只是開發(fā)者應(yīng)該做出一個折中的選擇。
HTML5的矢量繪圖的功能由 Canvas標(biāo)簽和各種繪圖API構(gòu)成。在 JavaScript的腳本中,通過 Canvas節(jié)點(diǎn)可以獲得繪圖上下文,通過它調(diào)用 API就可以繪制各種矢量圖畫布是一個矩形區(qū)域,您可以控制其每一像素。canvas擁有多種繪制路徑、矩形、圓形、字符以及添加圖像的方法。
<canvas id=“myCanvas” width=“200” height=“100”></canvas>
通過 JavaScript來繪制,canvas元素本身是沒有繪圖能力的。所有的繪制工作必須在JavaScript內(nèi)部完成:
然后,創(chuàng)建 context對象:
getContext(“2d”) 對象是內(nèi)建的 HTML5 對象,擁有多種繪制路徑、矩形、圓形、字符以及添加圖像的方法。
IE瀏覽器端的本地存儲空間存儲允許最多300個Cookie,最多存儲4096個字節(jié)的內(nèi)容。不過,真正實(shí)用的Web程序,可能需要比這更多的存儲空間。例如,以前的Dojo工具包使用Flash插件來分配用戶硬盤上的部分空間,把它留給瀏覽器使用,而現(xiàn)在使用HTML5就可以達(dá)到同樣的目的。
JavaScript和 CSS為基礎(chǔ)的 DHTML技術(shù)的迅猛發(fā)展,頁面設(shè)計(jì)的易用性、功能性和交互性已經(jīng)成為了業(yè)界的主流趨勢。但是,前端大規(guī)模的JavaScript和CSS開發(fā)的復(fù)雜度比較高,而且還要支持不同的瀏覽器平臺,出現(xiàn)了很多 JavaScript庫用來幫助前端開發(fā)者,如 jQuery、YUI Library、Ext JS 等。
HTML5為Widget提供了一個相互通信的標(biāo)準(zhǔn)機(jī)制。盡管仍然不能夠相互進(jìn)入對方的運(yùn)行環(huán)境中,但它們可以相互發(fā)送信息來協(xié)同工作了。
HTML5繼承Web應(yīng)用開發(fā)簡單、部署升級方便、可以跨平臺,又能像本地應(yīng)用那樣功能強(qiáng)大,操作體驗(yàn)簡便友好。目前存在制約HTML5業(yè)務(wù)發(fā)展的一些問題。當(dāng)然,這些不足或問題,并非不可克服:瀏覽器對HTML5的兼容性參差不齊,導(dǎo)致部分HTML5應(yīng)用無法跨平臺;源代碼對用戶可見,容易被拷貝;HTML5應(yīng)用的可用性,受制于網(wǎng)絡(luò)狀況的穩(wěn)定性;缺少優(yōu)秀的HTML5應(yīng)用開發(fā)工具,影響應(yīng)用的質(zhì)量和數(shù)量。
如今已經(jīng)有越來越多的門戶網(wǎng)站在嘗試使用HTML5,當(dāng)大家都切身體會到這種新的網(wǎng)頁標(biāo)準(zhǔn)所帶來的視覺沖擊、技術(shù)改善、資源節(jié)約等諸多便利,相信會加快HTML5頁面的普及,雖然目前面臨的問題和挑戰(zhàn)依然很多,盡管 HTML5還有很遠(yuǎn)的路要走,但其正在改變Web,也必然改變Web。
[1]W3C HTML 52 A vocabulary and associated APIs for HTML and XHTML[EB/OL].(2010-08-12)[2010-11-01].http://www.w3.org/TR/html5.
[2]唐燦.下一代Web界面前端技術(shù)綜述[J].重慶工商大學(xué)學(xué)報(bào):自然科學(xué)版,2009,4(26):35-355.
[3]馬新強(qiáng),孫兆.Web標(biāo)準(zhǔn)與HTML5的核心技術(shù)研究[J].重慶文理學(xué)院學(xué)報(bào):自然科學(xué)版,2010(06):61-64.
[4]Mark Pilgrim,趙澤欣.HTML5揭秘[M].北京:電子工業(yè)出版社,2010:20-25.