“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的战略性理论武器. 而且让他死的非常瞑目.
出处:喜运28网Alibaba.com UED
责任编辑:bluehearts
上一页 下一页 HTML5设计原则 [2]
◎进入论坛网页制作、WEB标准化版块参加讨论,我还想发表评论。
|