“Be conservative in what you send; be liberal in what you accept. –The Robustness principle”
“對于自己輸出要嚴(yán)格; 對于他人的輸入要靈活. –魯棒性原則”
一切從魯棒性原則說起, 把魯棒性原則放在第一位, 是為了:
1. 讓大家?guī)е敯粜栽瓌t的思考來聽這次分享.
2. 魯棒性原則是促成HTML5的設(shè)計原則主線.
3. 魯棒性的引申義可以上升到為人處世中去.
一. XHTML2 & HTML5之間不得不說的故事
HTML Tag的文檔作為HTML誕生的見證, 但是HTML Tag這份文檔并不是官方的規(guī)范.
真正的官方HTML規(guī)范是從HTML2開始的, HTML2繼承了HTML Tag的成果, 繼往開來, 承前啟后, 而非另立門戶, 從頭開始.
但是小悲劇的是, HTML2的標(biāo)準(zhǔn)出臺的時候恰好是瀏覽器大戰(zhàn)的年代, 瀏覽器廠商各行其道, 無視標(biāo)準(zhǔn)的存在, 而W3C也在這個時期也不停的將一些瀏覽器私有特性轉(zhuǎn)換成標(biāo)準(zhǔn)的一部分. (Cowpaths)
97年 – 99年, 瀏覽器大戰(zhàn)如火如荼, HTML標(biāo)準(zhǔn)也經(jīng)歷了從3.2 – 4.0 – 4.01的版本變遷, 非常的迅猛, 但是到了HTML4.01是, W3C的頭也許是被敲壞了, 認(rèn)為:”好了, HTML就這樣了, HTML4.01是HTML的最后一個版本了, 我們也用不著HTML工作組了.”
而事實上W3C并沒有停止開發(fā)這門語言, 只不過他們對HTML失去了興趣, 在HTML4.01后, 他們提出了xHTML1.0,雖然聽起來完全不同,但是xHTML1.0與HTML4.01其實都是一樣的,唯一不同的,就是xHTML1.0要求使用XML語法。也就是說我們現(xiàn)在習(xí)以為常的:所有標(biāo)簽必須小寫,所有屬性必須小寫,所有屬性值都必須加引號,所有標(biāo)簽必須閉合…
從規(guī)范本身的內(nèi)容看,實際是相同的, 不同之處就是編碼風(fēng)格, 因為對瀏覽器來說, 讀取符合HTML4.01,HTML3.2或者xHTML1.0規(guī)范的網(wǎng)頁都沒有問題, 對于瀏覽器來說,都會生成相同的DOM樹,只不過xHTML1.0嚴(yán)格的編碼風(fēng)格讓人們比較偏好.
到了2000年,Web標(biāo)準(zhǔn)項目的活動如火如荼, 開發(fā)人員對那些個私有特性都忍無可忍, 大家都在罵瀏覽器廠商:”他媽的支持個標(biāo)準(zhǔn)真有這么難嗎?!”. 正巧那個時候CSS有了長足的發(fā)展,而且與xHTML1.0的結(jié)合也很緊密, CSS + xHTML1.0基本上就成了”最佳實踐”.而xHTML的那種優(yōu)雅的書寫風(fēng)格在專業(yè)人士的帶領(lǐng)下, 成為了業(yè)界最被認(rèn)可接受的風(fēng)格了.
在xHTML1.0之后緊跟著出來的是xHTML1.1,我印象很深刻的是:當(dāng)時還在用Editplus, 去官網(wǎng)找了個xHTML1.1的template, 結(jié)果…
xHTML1.1和xHTML1.0不僅僅是版本號加了0.1這樣的差異, 1.1居然是要求必須把文檔標(biāo)記成XML? 而當(dāng)時最先進的IE無法處理接收到XML文檔類型的文檔, 這這太崩潰了.而真正使人不想把文檔標(biāo)注成XML的原因是, 如果你在文檔中哪怕是只寫錯了一點點, 比如&沒有編碼成&那整個頁面的渲染結(jié)果就是黃屏了,沒戲了,這個頁面中有一個錯誤,你丫別想看這個網(wǎng)頁了. “如果解析器渠道錯誤,那就停止解析”是的.這就是XML文檔的錯誤處理機制.
依稀記得xHTML2的墳還沒長草, 而促使他死亡的原因就是魯棒性原則.
- 程序員們不會去支持他,因為XML的錯誤處理機制和xHTML2故意而為的不向后兼容.
- 瀏覽器廠商不回去支持他,因為瀏覽器必須要保證向后兼容.
當(dāng)然并不是說這樣的規(guī)范不好, 恰恰相反, 從理論角度他是個非常好的規(guī)范, 是個非常好的格式, 但僅限于理論角度, 問題就是他并不實際.
可以說魯棒性原則是殺死xHTML2.0的戰(zhàn)略性理論武器. 而且讓他死的非常瞑目.
出處:Alibaba.com UED
責(zé)任編輯:bluehearts
上一頁 下一頁 HTML5設(shè)計原則 [2]
◎進入論壇網(wǎng)頁制作、WEB標(biāo)準(zhǔn)化版塊參加討論,我還想發(fā)表評論。
|