? ? ? ? ?HTML5是HTML最新的修訂版本岭参,2014年10月由萬維網(wǎng)聯(lián)盟 (W3C)完成標(biāo)準(zhǔn)制定哥捕。 目標(biāo)是取代1999年所制定的HTML 4.01和XHTML 1.0標(biāo)準(zhǔn)袍嬉,以期能在網(wǎng)際網(wǎng)路應(yīng)用迅速發(fā)展的時(shí)候墩莫,使網(wǎng)路標(biāo)準(zhǔn)達(dá)到符合當(dāng)代的網(wǎng)路需求延塑。 廣義論及HTML5時(shí)音诈,實(shí)際指的是包括HTML幻碱、 CSS和JavaScript在內(nèi)的一套技術(shù)組合绎狭。 它希望能夠減少網(wǎng)頁瀏覽器對于需要外掛程式的豐富性網(wǎng)路應(yīng)用服務(wù) (Plug-in-Based Rich Internet Application, RIA )褥傍,例如: Adobe Flash 儡嘶、 Microsoft Silverlight與Oracle JavaFX的需求,并且提供更多能有效加強(qiáng)網(wǎng)路應(yīng)用的標(biāo)準(zhǔn)集恍风。
? ? ? ? Web上的所有技術(shù)的規(guī)格都由萬維網(wǎng)聯(lián)盟(W3C)負(fù)責(zé)管理蹦狂。作為一名前端工程師的您,可能訪問過該聯(lián)盟的網(wǎng)站[w3.org](https://www.w3.org/TR/html5/)來尋找HTML5的某個(gè)問題的答案朋贬】ǎ或者在google搜索HTML specs找到規(guī)范的文檔途徑。
? ? ? ? 就這樣锦募,您接觸到了規(guī)格摆屯,但幾乎立刻被嚇得落荒而逃。您一定會得糠亩,“什么嘛鸥拧,這完全不是給人讀的∠鹘猓”實(shí)際上,它是給人讀的沟娱,前提是您預(yù)先了解一些關(guān)鍵信息氛驮。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"圣經(jīng)寫出來不是為了給人讀,而是為了給人解的济似。 "
? ? ? ? 如果您想要尋找某個(gè)問題的答案矫废,實(shí)際上就是在尋找的是一本用戶手冊,或一篇用戶指南砰蠢;換言之蓖扑,您想要了解的是該技術(shù)的用法。然而台舱,這卻并不符合W3C規(guī)格的創(chuàng)作意圖律杠。所謂“規(guī)格”,它意在告知負(fù)責(zé)實(shí)現(xiàn)該技術(shù)的程序員竞惋,有哪些特性是必須提供的柜去,以及它們應(yīng)該如何實(shí)現(xiàn)。
? ? ? ? ?維修手冊在語言風(fēng)格上注重精確性拆宛,這一點(diǎn)和語調(diào)輕松嗓奢、行文隨意的談話作品相當(dāng)不同。同樣地浑厚,W3C規(guī)格的語言風(fēng)格也一絲不茍股耽。以下是一些您在閱讀規(guī)格時(shí)會常常遇到的字詞根盒。
規(guī)范性
如果您看到“本節(jié)是規(guī)范性的(normative)”,則指出該節(jié)的內(nèi)容會指定實(shí)現(xiàn)者應(yīng)該遵循的細(xì)節(jié)物蝙。而提示性(informative)章節(jié)則不然炎滞,它們通常是一些示例和解釋。
用戶代理
這個(gè)有點(diǎn)兒故弄玄虛的術(shù)語茬末,意思其實(shí)是指這樣的程序:用戶需要憑借它才能和某項(xiàng)技術(shù)打上交道厂榛。對于HTML而言,它的用戶代理就是瀏覽器丽惭。對于可縮放矢量圖形而言击奶,它的用戶代理可能是一個(gè)查看器,如[Batik](http://xml.apache.org/batik/)责掏;又或是一個(gè)插件柜砾,如[Adobe?SVG?Viewer](http://www.adobe.com/svg/)。
RFC
Request?For?Comment的縮寫换衬,意思是該文檔代表某個(gè)互聯(lián)網(wǎng)標(biāo)準(zhǔn)(草案)痰驱。
助動詞
如果某個(gè)規(guī)格中寫道,它遵循[RFC2119](http://www.ietf.org/rfc/rfc2119.txt)?瞳浦,那么接下來文中出現(xiàn)的特定助動詞就會帶有正式的對應(yīng)含義担映。?必須(must)的意義是:某定義是絕對要求的;?絕不(must?not)的意義是:某定義是絕對禁止的叫潦;?應(yīng)該(should)的意義是:某個(gè)特性可以實(shí)現(xiàn)也可以不實(shí)現(xiàn)蝇完,但如果不實(shí)現(xiàn)的話,最好有個(gè)很好的理由矗蕊;?不應(yīng)該(should?not)的意義是:如果確實(shí)需要在實(shí)現(xiàn)里包括某個(gè)特性短蜕,則最好有個(gè)很好的理由。
親愛的Martha阿姨:謝謝您那本講大象的書傻咖。它告訴我關(guān)于大象的知識朋魔,比我想知道的還要多。
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 一個(gè)孩子的感謝信
? ? ? ? 如果您發(fā)現(xiàn)自己在讀的文字沒有明顯的標(biāo)記卿操,只有大量的冗詞警检,讀起來既像法律術(shù)語,又像是計(jì)算機(jī)科學(xué)講座害淤,或兩者兼似的話解滓,也許僅僅粗粗看一眼就夠了。
? ? ? ? 另一方面筝家,有時(shí)您卻應(yīng)該放慢閱讀速度洼裤。當(dāng)您看到一張示意圖時(shí),請看看它的題注和標(biāo)注。這些通常都會指向重要信息腮鞍。當(dāng)您看到一節(jié)中包含有一個(gè)或數(shù)個(gè)示例時(shí)值骇,請放慢速度,仔細(xì)閱讀移国。
? ? ? ? BNF是Backus Naur Form或Backus Normal Form的縮寫吱瘩。它是一種用來表示計(jì)算機(jī)語言語法的緊湊形式,它實(shí)際上無處不在迹缀。不同的規(guī)格使用不同風(fēng)格的BNF使碾,但它們的共同之處是都把大段的自然語言描述變換成了符號形式。下面是一個(gè)說明了三明治成分的例子:
? ? ? ? 三明治由以下成分構(gòu)成:一塊面包下切片祝懂,還有芥茉或蛋黃醬票摇;生菜可放可不放;西紅柿切片可放可不放砚蓬;二至四塊紅腸矢门、臘腸或火腿以任意方式組合的切片;一塊或多塊芝士切片灰蛙;還有一塊面包上切片祟剔。
其變換形式為:
三明治 ::= 面包下切片 [ 芥茉 | 蛋黃醬 ] 生菜? 西紅柿? [紅腸 | 臘腸 | 火腿 ] {2,4} 芝士+ 面包上切片
?定義的各成分按順序列出,以空格分隔摩梧。各項(xiàng)目以方括號分組物延,組內(nèi)選擇以豎線分隔。
? ? ? ? 如果項(xiàng)目后面跟著一個(gè)問號仅父,意思是“一個(gè)或沒有”教届;如果后面跟著一個(gè)加號,意思是“一個(gè)或多個(gè)”驾霜;如果后面跟著一個(gè)星號,意思是“零個(gè)或多個(gè)”买置;如果后面跟著一個(gè)里面有數(shù)字的花括號粪糙,數(shù)字就代表著項(xiàng)目允許出現(xiàn)次數(shù)的上下限。
? ? ? ? 小括號忿项,或更多的方括號蓉冈,用來給更復(fù)雜的定義中的項(xiàng)目分組。有時(shí)候轩触,也會用尖括號括起某項(xiàng)目表示這是一個(gè)通用項(xiàng)目(如“顏色”)寞酿,或用引號括起某項(xiàng)目表示這是一個(gè)守恒項(xiàng)目。
更多的閱讀細(xì)則待以后做更詳細(xì)的歸納總結(jié):
小結(jié):
1. 建立明確的意識:規(guī)格是寫給實(shí)現(xiàn)者脱柱,而非最終用戶看的伐弹;
2. 許多規(guī)格都包含一個(gè)專門章節(jié),以說明其組織方式榨为,以及應(yīng)該如何閱讀惨好;
3. 熟知規(guī)格專用詞匯煌茴;
4. 務(wù)請記住,您不必閱讀逐字閱讀規(guī)格日川。學(xué)會跳讀蔓腐,集中閱讀有意義的部分;
5. 跳過名字空間相關(guān)討論章節(jié)龄句;
6. 學(xué)習(xí)閱讀BNF回论,很多地方都在使用它;
7. 學(xué)會閱讀DTD分歇,并從中找到語法問題的答案傀蓉;
8. 如果某項(xiàng)技術(shù)涉及可編程腳本,該信息就包含在綁定中卿樱。
只要耐心有加僚害、堅(jiān)持不懈,您一定會為從W3C規(guī)格中獲取的海量信息而感到驚喜繁调。