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