HTML5代表著Web發(fā)展的未來(lái)方向。無(wú)論大家身為開(kāi)發(fā)人員還是高級(jí)用戶,關(guān)于這一Web編程新基礎(chǔ)的種種態(tài)勢(shì)都值得各位高度關(guān)注。
如果大家還沒(méi)有意識(shí)到,那我們先要強(qiáng)調(diào)一句——Web世界已經(jīng)徹底改變了。時(shí)至今日,網(wǎng)絡(luò)銀行、實(shí)時(shí)視頻聊天以及短視頻共享已經(jīng)成為Web領(lǐng)域的立足根基,而接下來(lái)還將有更多極具突破性的趨勢(shì)及成果不斷涌現(xiàn)。正因?yàn)槿绱耍@一根基才需要迎接進(jìn)一步升級(jí)。
超文本標(biāo)記語(yǔ)言(簡(jiǎn)稱HTML)正是瀏覽器所使用的語(yǔ)言。作為原本立足于面向文檔的標(biāo)準(zhǔn)通用標(biāo)記語(yǔ)言(簡(jiǎn)稱SGML)的衍生產(chǎn)物,HTML在其早期的四個(gè)版本中只需要滿足最初學(xué)術(shù)性用戶對(duì)于Web功能的需求。但隨著用戶對(duì)于各類功能的進(jìn)一步渴望——從安全加密傳輸?shù)揭曨l媒體——API、SDK、插件庫(kù)以及外部應(yīng)用程序全部被融入到了HTML當(dāng)中,從而在最大程度上迎合個(gè)人及企業(yè)用戶對(duì)Web提出的要求。因此2004年,Web超文本應(yīng)用技術(shù)工作組(簡(jiǎn)稱WHATWG)開(kāi)始著手構(gòu)建一套新的HTML版本,這就是HTML 5。
但這些便利具體包括什么呢?實(shí)際效果可能取決于大家到底身為開(kāi)發(fā)人員抑或是普通用戶。對(duì)于開(kāi)發(fā)人員而言,HTML 5能夠顯著簡(jiǎn)化大家的日常工作——相較于HTML 4.1及以下版本而言,這是因?yàn)楹笳甙罅课覀冊(cè)缫褩壷挥玫牟寮邦~外內(nèi)容。這絕對(duì)是件好事,不過(guò)從短期角度出發(fā),我們?nèi)匀恍枰剂科渌恍┖罄m(xù)問(wèn)題。
對(duì)用戶來(lái)說(shuō),日常生活則會(huì)得到簡(jiǎn)化,這是因?yàn)橛缮鲜霾寮鶐?lái)的安全漏洞及兼容性問(wèn)題將不復(fù)存在,因此我們?cè)僖灿貌恢鵀榱苏g覽網(wǎng)絡(luò)內(nèi)容而積累豐富的安全經(jīng)驗(yàn)。此外,瀏覽器的使用體驗(yàn)也將被拓展到更多設(shè)備平臺(tái)之上,這將使得桌面設(shè)備與移動(dòng)設(shè)備擁有更為統(tǒng)一的觀看感受。誰(shuí)不喜歡這樣呢,對(duì)吧?
值得著重強(qiáng)調(diào)的是,HTML 5是一套尚處于早期發(fā)展階段的標(biāo)準(zhǔn)。這意味著其前進(jìn)道路上還將迎來(lái)多次飛躍,并將沿途帶來(lái)諸多驚喜。正是考慮到這一點(diǎn),我們認(rèn)為它能夠切實(shí)幫助整個(gè)業(yè)界以新的方式完成Web頁(yè)面的構(gòu)建工作。
如果大家本身正是HTML 5編程人員,那么前面提到的內(nèi)容對(duì)您來(lái)說(shuō)肯定屬于陳詞濫調(diào)了——而且大家當(dāng)然也會(huì)希望能從我們這得到點(diǎn)更加新鮮有料的消息。希望各位能在評(píng)論欄中闡述您的體會(huì)與規(guī)劃,相信這一切都將成為HTML 5向HTML 5.1進(jìn)化的重要信息依托(這一升級(jí)將從明年正式開(kāi)始)。好了,閑言少敘,咱們馬上進(jìn)入正題。
HTML5是一種新型語(yǔ)言
從HTML到HTML 4.2,HTML的每一次迭代都以SGML為基礎(chǔ)——也就是由IBM公司在上世紀(jì)六十年代開(kāi)發(fā)出的這款文檔描述語(yǔ)言。盡管HTML一直在不斷發(fā)展演進(jìn),但其最為根本的出發(fā)點(diǎn)始終保持不變。然而如今這一情況得到了扭轉(zhuǎn)。HTML 5是一種全新語(yǔ)言,不再立足于SGML。對(duì)于Web用戶來(lái)說(shuō),這不會(huì)對(duì)他們的正常使用產(chǎn)生任何影響——大部分普通用戶可能根本沒(méi)聽(tīng)說(shuō)過(guò)SGML,也不知道以此為基礎(chǔ)會(huì)對(duì)HTML產(chǎn)生怎樣的影響。不過(guò)對(duì)于開(kāi)發(fā)人員而言,這意味著多年來(lái)在常用標(biāo)簽以及功能領(lǐng)域建立起的“肌肉記憶”需要再次更新甚至從頭學(xué)習(xí)。這倒并不一定是件壞事,不過(guò)請(qǐng)各位記住,我們必須要在最后期限之前完成適應(yīng)與學(xué)習(xí),否則就會(huì)被歷史的洪流所吞沒(méi)。
好消息是,HTML 5仍然能夠向下兼容其它早期HTML版本,因此去年才剛剛開(kāi)始的代碼編寫(xiě)工作仍然能夠在今年提供正常的頁(yè)面顯示效果。這種延續(xù)性確實(shí)值得稱道,不過(guò)根據(jù)經(jīng)驗(yàn),我們可以想見(jiàn)會(huì)有不少企業(yè)由于懶得升級(jí)而繼續(xù)停滯不前。千萬(wàn)別這么做:不要再依賴于剪切加粘貼了,請(qǐng)從頭開(kāi)始重新開(kāi)發(fā)新的HTML 5代碼。事實(shí)最終會(huì)證明,這才是最明智的應(yīng)對(duì)之道。
我們需要一款新的瀏覽器
還記得我們剛剛提到過(guò)的HTML 5向下兼容能力吧?這種兼容能力的確存在,但需要注意的是,面向HTML 4以及更早版本打造的瀏覽器方案將無(wú)法與HTML 5順利對(duì)接。如果大家所在的企業(yè)一直將某套早期特定瀏覽器版本作為標(biāo)準(zhǔn)(沒(méi)錯(cuò),那些仍然在堅(jiān)持使用IE瀏覽器早期版本的朋友,批評(píng)的就是你),那么HTML 5已經(jīng)發(fā)出了沖鋒的號(hào)角——是時(shí)候馬上動(dòng)手推動(dòng)升級(jí)工作了。
目前的各大主流瀏覽器版本都支持HTML 5。它們?cè)诎踩脚c可靠性方面也要比早期版本好得多。所以馬上作出規(guī)劃,別再坐以待斃啦!
新的瀏覽器折衷途徑
好的,如果您(或者您所在企業(yè)的CIO)對(duì)于采用“全新瀏覽器”始終保持固執(zhí)的態(tài)度,那么咱們也可以通過(guò)折衷的辦法加以解決。大家可以在早期HTML代碼當(dāng)中將HTML 5代碼定義為塊元素,并將HTML 5元素插入其中。這確實(shí)能夠奏效,甚至效果還相當(dāng)不錯(cuò)。但我敢肯定,大家自己對(duì)此不會(huì)太滿意。
只要有合理的原因作為依托,大家完全可以通過(guò)以上方式暫解燃眉之急——無(wú)需升級(jí)即可擁抱HTML 5,簡(jiǎn)直機(jī)智!除非……
大家仍然堅(jiān)持使用IE 8之前的陳舊瀏覽器版本。在這種情況下,各位一定會(huì)遇到麻煩,因?yàn)槲④浌静⒉辉试S我們?cè)跇邮疆?dāng)中定義未知代碼。在這種情況下,JavaScript也能夠起到折衷的作用(大家在搜索引擎中輸入‘HTML 5’再加上‘the siv’即可),但這無(wú)疑會(huì)讓問(wèn)題更為復(fù)雜,而且我們都知道最終會(huì)帶來(lái)怎樣的結(jié)果——對(duì)吧?
視頻播放更加輕松
在HTML 4上實(shí)現(xiàn)視頻播放實(shí)在令人有些抓狂。這并不是說(shuō)大家不知道該如何解決,但最糟糕的是僅有的幾種可能性解決辦法沒(méi)有一樣能夠依靠語(yǔ)言本身來(lái)完成。換言之,所有工作都得依托于插件。雖然在大多數(shù)情況下,我們最終也能得到預(yù)期的效果,但相信每位朋友——無(wú)論是開(kāi)發(fā)人員還是普通用戶——都曾在瀏覽器上看到由視頻引發(fā)的沮喪小臉圖標(biāo),這代表著某款插件出了問(wèn)題、需要更新或者暫時(shí)不可用。
HTML 5能夠避免上述所有問(wèn)題,因?yàn)楝F(xiàn)在視頻能夠作為媒體類型在語(yǔ)言內(nèi)部直接加以定義。打算在自己的頁(yè)面當(dāng)中引入一段視頻?在HTML 5中完成這項(xiàng)工作,其難度跟在HTML 4中插入一幅靜態(tài)圖片差不多。如果大家曾經(jīng)花過(guò)大量時(shí)間研究如何向可定制視頻播放器里添加代碼,那么如今輕松易行的HTML 5視頻頁(yè)面編寫(xiě)方式絕對(duì)能讓您長(zhǎng)出一口惡氣。而對(duì)于普通用戶來(lái)說(shuō),這些可愛(ài)的短視頻內(nèi)容也將擁有更為穩(wěn)定的播放效果。
現(xiàn)在HTML 5面對(duì)的幾個(gè)主要問(wèn)題是:并不是所有瀏覽器都能夠?yàn)槿魏我曨l媒體類型提供支持。不過(guò)總體而言,只要大家堅(jiān)持使用新的WebM視頻格式,那么整個(gè)開(kāi)發(fā)流程應(yīng)該不會(huì)遇到任何阻礙。
動(dòng)畫(huà)已被包含于其中
不知道還有多少朋友記得自己為了在Web頁(yè)面當(dāng)中加入酷炫的動(dòng)畫(huà)效果而被迫學(xué)習(xí)Flash?如果大家沒(méi)有接觸過(guò)Flash,那就必須得跟專門(mén)的設(shè)計(jì)人員進(jìn)行配合——后者會(huì)在原本穩(wěn)定的頁(yè)面當(dāng)中加入大段神秘代碼,而這有可能引發(fā)各類潛在問(wèn)題。不過(guò)痛苦的時(shí)光已經(jīng)過(guò)去,如今幾乎每個(gè)人(包括Adobe公司在內(nèi))都對(duì)HTML 5的新能力感到振奮。
HTML 5當(dāng)中包含有我們?cè)陧?yè)面內(nèi)創(chuàng)建動(dòng)畫(huà)效果時(shí)所需要的全部功能。大家甚至可以在無(wú)需引入任何外部代碼的前提下實(shí)現(xiàn)復(fù)雜的3D動(dòng)畫(huà),這一點(diǎn)非常值得稱道。此外,與早先的實(shí)現(xiàn)方式相比,如今的內(nèi)置功能也把安全性與可靠性水平推向了新的高度。很顯然,對(duì)于每一位開(kāi)發(fā)人員來(lái)說(shuō),安全性與可靠性都跟開(kāi)發(fā)成果的自身品質(zhì)緊密相關(guān)。
另一大進(jìn)步:我們用不著再考慮自己的頁(yè)面會(huì)顯示在哪些設(shè)備之上了。任何一款支持HTML 5的瀏覽器都能在全部設(shè)備上正常顯示各位精心設(shè)計(jì)出的動(dòng)畫(huà)效果。
視頻通話全面來(lái)臨
動(dòng)畫(huà)效果當(dāng)然很酷,不過(guò)基于瀏覽器的視頻通話與協(xié)作模式如今亦可通過(guò)名為WebRTC(即Web實(shí)時(shí)通信)的協(xié)議得到實(shí)現(xiàn)——這幾乎從根本上改變了游戲規(guī)則。盡管并不嚴(yán)格隸屬于HTML 5協(xié)議范疇,但HTML 5瀏覽器確實(shí)能夠發(fā)揮WebRTC所帶來(lái)的功能優(yōu)勢(shì)。
想象一下,只需要三行代碼即可為自己的網(wǎng)站帶來(lái)視頻會(huì)議功能——這是多么令人振奮的目標(biāo)。不是做夢(mèng),現(xiàn)在我們已經(jīng)可以通過(guò)WebRTC實(shí)現(xiàn)這一點(diǎn)。不過(guò)由于尚處于早期發(fā)展階段,WebRTC仍然存在幾個(gè)尚未解決的問(wèn)題。首先就是其中的一項(xiàng)安全漏洞有可能影響到某些VPN。另外就是,WebRTC實(shí)際上是一套點(diǎn)到點(diǎn)系統(tǒng)——其調(diào)用不一定需要經(jīng)由中央服務(wù)器。雖然這樣的設(shè)計(jì)能夠有效降低數(shù)據(jù)中心的實(shí)際負(fù)荷,但卻有可能給全局網(wǎng)絡(luò)流量帶來(lái)難以控制的影響。這要么會(huì)帶來(lái)大量小型數(shù)據(jù)流,要么會(huì)讓未考慮到此類狀況的網(wǎng)絡(luò)規(guī)劃模型面臨沉重的傳輸負(fù)擔(dān)。
但這個(gè)問(wèn)題幾乎肯定能夠得到解決,因?yàn)?/span>WebRTC極具現(xiàn)實(shí)意義,業(yè)界根本不可能忽略其核心價(jià)值之上的這一點(diǎn)點(diǎn)瑕疵。將其引入HTML 5代碼庫(kù),協(xié)作與客戶支持工作將成為Web開(kāi)發(fā)當(dāng)中毫不費(fèi)力即可完成的任務(wù)。
古董級(jí)語(yǔ)言仍能正常起效
而且我們也需要這樣的結(jié)果。從JavaScript到Python,我們?nèi)匀恍枰褂眠@些工具來(lái)接入數(shù)據(jù)庫(kù)、完成復(fù)雜的操作與處理流程、并對(duì)現(xiàn)實(shí)世界中的設(shè)備進(jìn)行操控。它們也依舊能與HTML 5順暢協(xié)作,從而繼續(xù)為廣大開(kāi)發(fā)人員及普通用戶效力。現(xiàn)在,我們需要對(duì)與這些語(yǔ)言相關(guān)的標(biāo)簽進(jìn)行認(rèn)真核對(duì)——因?yàn)榇蟛糠謽?biāo)簽都在HTML 5當(dāng)中經(jīng)過(guò)了修改。但歸根結(jié)底,它們?nèi)匀挥行А?/span>
不過(guò)大部分瀏覽器插件以及我們過(guò)去已經(jīng)習(xí)慣的外部工具就沒(méi)那么好運(yùn)了,特別是那些負(fù)責(zé)處理富媒體對(duì)象的方案。好消息是,HTML 5如今單靠自身就能實(shí)現(xiàn)全部媒體類型的原生處理,因此大家也將因此節(jié)約下可觀的時(shí)間與精力。
設(shè)備平臺(tái)差異仍然不容忽視
如果能夠宣布HTML 5已然解決了由不同屏幕尺寸以及功能差異所帶來(lái)的各類問(wèn)題,我們當(dāng)然會(huì)為之振奮——但遺憾的是,實(shí)際情況并非如此。雖然我們已經(jīng)能夠以前所未有的方式在不同設(shè)備之間順暢往來(lái),但開(kāi)發(fā)人員仍然無(wú)法保證自己在臺(tái)式機(jī)屏幕上設(shè)計(jì)出的頁(yè)面成果同樣能在智能手機(jī)上擁有良好表現(xiàn)。不同瀏覽器與設(shè)備平臺(tái)之間存在著巨大差異,特別是在HTML 5兼容水平方面。頁(yè)面將依舊需要查詢?yōu)g覽器及設(shè)備類型,而后再載入對(duì)應(yīng)的方案及版本。對(duì)不起,現(xiàn)實(shí)就是這么殘酷……
HTML5全面針對(duì)移動(dòng)設(shè)備
前面剛剛提到,我們?nèi)匀恍枰J(rèn)真思考用戶在查看頁(yè)面時(shí)實(shí)際使用的設(shè)備類型。而作為老牌語(yǔ)言家族的新成員,HTML 5當(dāng)然也很清楚如今世界正逐步向移動(dòng)平臺(tái)傾斜。有了HTML 5,大家用不著再將移動(dòng)設(shè)備當(dāng)成是被全面閹割過(guò)的二等公民——我們完全可以編寫(xiě)動(dòng)態(tài)代碼,并使其在相當(dāng)一部分移動(dòng)設(shè)備的屏幕之上得到正常顯示。
好消息是,我們向頁(yè)面當(dāng)中添加的全部要素,從視頻到動(dòng)畫(huà)再到動(dòng)態(tài)尺寸元素,在理論上都能夠得到良好顯示——即使某些設(shè)備上的顯示尺寸偶爾有些奇怪。
那么最終結(jié)論是什么?別忙著拋棄自己的設(shè)備測(cè)試流程,也別想當(dāng)然地認(rèn)為每個(gè)人都會(huì)像咱們自己一樣,在27寸顯示器上查看Web頁(yè)面。正如Steve Martin的經(jīng)典語(yǔ)錄,“讓我們從小處著手。”
HTML5相當(dāng)復(fù)雜,但這是件好事
相較于HTML 4甚至是Flash,HTML 5都顯得有些復(fù)雜甚至不易親近。但這是件好事,因?yàn)檫@意味著HTML 5擁有充足的力量與功能,足以成為企業(yè)客戶在構(gòu)建基于瀏覽器的復(fù)雜而強(qiáng)大的應(yīng)用程序時(shí)所需依靠的頁(yè)面描述語(yǔ)言。這才是看待HTML 5的正確方式——它更像是一種應(yīng)用程序語(yǔ)言,而非單純的頁(yè)面描述語(yǔ)言。
目前網(wǎng)絡(luò)上有成百上千個(gè)相關(guān)站點(diǎn),能夠幫助大家學(xué)習(xí)HTML 5的對(duì)應(yīng)知識(shí),另有大量專業(yè)培訓(xùn)機(jī)構(gòu)也為我們準(zhǔn)備了理想的教程方案。從現(xiàn)在開(kāi)始,HTML 5開(kāi)始定義Web的未來(lái)發(fā)展方向,正如HTML當(dāng)初定義網(wǎng)站頁(yè)面之時(shí)一樣。
大家是否已經(jīng)準(zhǔn)備好迎接HTML 5的降臨了?您是否已經(jīng)開(kāi)始學(xué)習(xí)這一新型語(yǔ)言?希望各位能在評(píng)論欄中談?wù)勛约旱那闆r。您的所見(jiàn)所想,包括您對(duì)于HTML 5的評(píng)價(jià)——無(wú)論好壞——都將極具參考價(jià)值。