|
HTML是什么
平時在看一種新技術(shù)的介紹時,我最喜歡看的是按照“它是什么”和“它不是什么”這樣的邏輯來闡述的文章。不過我暫時還沒能力這么寫...
HTML首先是W3C制定的一套規(guī)范和定義,而不是具體實(shí)現(xiàn)。就好比TCP/IP是一套協(xié)議,而世界上有很多套TCP/IP協(xié)議的實(shí)現(xiàn):你既可以用C/C++來實(shí)現(xiàn)它,也可以用Java等其它語言來實(shí)現(xiàn)。瀏覽器是最常見的一種實(shí)現(xiàn)和支持HTML的應(yīng)用,但它既不是唯一(其它如Yahoo的Widget引擎),也不僅僅包括HTML(例如插件和各種擴(kuò)展等)。HTML往往不會單獨(dú)出現(xiàn),現(xiàn)在最流行的技術(shù)就是HTML+CSS+JavaScrip+AJAX。
HTML提供了一種技術(shù),使得全世界的網(wǎng)頁編程人員能夠以統(tǒng)一的語法規(guī)范來編寫網(wǎng)頁,以其為載體來呈現(xiàn)文字、圖形、動畫、聲音、表格、鏈接等內(nèi)容,從而帶給互聯(lián)網(wǎng)用戶統(tǒng)一的互聯(lián)網(wǎng)體驗(yàn)。
目前世界上流行的絕大部分網(wǎng)頁都是用HTML4編寫的,而HTML5是前者的升級版本。HTML5也并不是從一開始就確定的,早些時候W3C的XHTML工作組,他們希望用具有更嚴(yán)格語義和語法的XHTML 2.0,同時也是一個徹底重構(gòu)的激進(jìn)版本,來替換HTML4,但是這一計劃內(nèi)部受阻,甚至連互聯(lián)網(wǎng)和W3C的初始化人Tim Berners-Lee都公開發(fā)表博文表示不同看法,所以后來HTML5才被扶為正統(tǒng)。(更多背景請看這里:http://blog.csdn.NET/Oneway102/archive/2010/11/18/6019413.ASPx)
HTML5包括那些內(nèi)容
很多時候我們提到HTML5時,所指可能并不一定嚴(yán)格相同。我用自己的話來表達(dá),就是狹義的HTML5和廣義的HTML5。
狹義上的HTML5常常指HTML本身,甚至僅僅指代基于XML的HTML標(biāo)識(Tag)及其相關(guān)語法。你如果去上一些培訓(xùn)課,就會發(fā)現(xiàn)這就是老師大部分時間都在教的內(nèi)容和范例。HTML5相對于HTML4而言最大的亮點(diǎn)主要在以下幾個方面:
- 增加了對Canvas、Video和Audio等標(biāo)簽的支持,多媒體和繪畫、甚至動畫的展現(xiàn)能力得到極大的增強(qiáng)
- 增加了一些更具語義的標(biāo)簽或接口,例如aside,header,footer等
- 修改或廢棄了一些HTML標(biāo)簽和語義,如新表單特性,Marquee,frameset等
- 建議將顏色/尺寸/對齊排版相關(guān)的屬性都移到CSS中,HTML5主要負(fù)責(zé)網(wǎng)頁的布局
廣義上的HTML5則包括網(wǎng)頁的前端技術(shù),即:狹義的HTML5 + CSS3 + JavaScript + Web Application API,可能還包括對SVG、插件等的支持。其中的Web Application API包括了一些HTML5最重要、最令人激動的特性(既然是API接口,說明這也僅是一套規(guī)范定義,具體每個瀏覽器實(shí)現(xiàn)是不一樣的):
- Server-Sent Events:服務(wù)器發(fā)起的消息事件(暫且這么翻譯吧...),輕松實(shí)現(xiàn)服務(wù)器端發(fā)起的更新,類似Push機(jī)制。注意它是單向的
- Web SQL Database:客戶端可以以SQL的形式將數(shù)據(jù)保存在本地數(shù)據(jù)庫中(不知為何Web Application工作組說他們不在維護(hù)這部分文檔)
- Web Sockets:客戶端可以利用WebSocket協(xié)議和主機(jī)進(jìn)行雙向通信,比XmlHttpRequest更加強(qiáng)大、高效和減少流量
- Web Storage:客戶端的本地存儲能力,包括Session相關(guān)(例如網(wǎng)頁訂單的狀態(tài))和全局相關(guān)數(shù)據(jù)(例如地圖數(shù)據(jù)和游戲關(guān)卡信息等)
- Web Workers:允許客戶端端像C++等高級編程語言那樣,將一些耗費(fèi)時間的純運(yùn)算操作,以類似線程的方式來運(yùn)行在非UI線程中,并以消息(Message)機(jī)制進(jìn)行通信
關(guān)于Web Application API
這是我個人的看法:Web Application API的雛形其實(shí)在HTML4時代就已經(jīng)存在,Yahoo、Apple等公司各自推出的Widget規(guī)范中就定義了一些基于不同平臺實(shí)現(xiàn)的擴(kuò)展接口,其目的就是要由網(wǎng)頁向應(yīng)用升級,既能兼容W3C的HTML規(guī)范,又能兼具本地應(yīng)用(Native App)的一些特性;既像HTML網(wǎng)頁那樣那樣易于部署和無縫升級,又兼有本地應(yīng)用的強(qiáng)大功能。
而這也正是制定Web Application API的主要目的:兼具跨平臺和強(qiáng)大功能兩大特性。
Web Application API原本可能也是作為HTML5規(guī)范的一部分的,但是工作者在編寫的過程中發(fā)現(xiàn),它們會使HTML5變得十分龐大,再加上這些特性本身比較獨(dú)立,可以作為接口而不是語法來定義,于是就把它們歸到Web Application 1.0這個大規(guī)范集來統(tǒng)一編寫,所以嚴(yán)格來講它們并非HTML5的一部分。
所以,從這個角度而言,HTML5其實(shí)不是全新的技術(shù),HTML5其實(shí)就是“擴(kuò)展的HTML4 + 若干標(biāo)準(zhǔn)封裝的操作系統(tǒng)接口”。
小結(jié)
所以在我看來,HTML作為一套獨(dú)立于平臺的標(biāo)準(zhǔn)規(guī)范,它最偉大的貢獻(xiàn)在于其在發(fā)展過程中得到了各大廠商跨平臺性的支持,讓全世界的互聯(lián)網(wǎng)用戶得以不用關(guān)心其背后的技術(shù)細(xì)節(jié),而獲得相對比較統(tǒng)一的互聯(lián)網(wǎng)體驗(yàn)。再往拔高的層次來說,它就像現(xiàn)實(shí)世界中統(tǒng)一的電壓、單位制式,甚至是統(tǒng)一的經(jīng)濟(jì)和政治制度,全世界人民正是基于這一平臺,才能實(shí)現(xiàn)知識的扁平化,以及交流的無縫化。
it知識庫:HTML5筆記(1) - HTML5的定義,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。