日期:2014-03-25  浏览次数:21609 次

网页制造aiyiweb文章简介:Web标准前途能否依赖浏览器技术.

原文:http://www.alistapart.com/articles/fromswitchestotargets

作者:Eric Meyer

当我读了一遍Aaron Gustafson的Beyond DOCTYPE: Web Standards, Forward Compatibility, and IE8  后,我心里的第一反应就是深深的否定这种观点. Aaron描述的version-targeting机制是完全错误的, 是完全倒退的, 是和我们应该做的事情完全相反的. 在web开发领域浸淫了十多年的我的每条神经都在反对.

为什么我会如此的抗拒? 部分缘由是目标转换器像是"浏览器嗅探"技术的复仇. 真的, 在众多浏览器正确的支持标准前, 嗅探器是应付它们之间不兼容情况的必需的方法, 但是到最后它都没有起到作用. 在你上传你的脚本之后没多久, 一个浏览器的新版本就出现了, 并且又破坏了它. 浏览器嗅探技术脆弱的,弄巧成拙的本性是将标准带给我们的浏览器的理想背后的反抗力量. 如果从浏览器的代码层把它合法化, 那他又将成为一种破坏标准之路的力量了.

首先, 我为目标转换器感到烦扰, 由于它这样做和向前兼容的发展背道而驰. 这曾经是我们的行业多年来的最优方法, 是在浏览器和平中艰难的发现的生存方式. 我们着眼于未来的开发, 大部分使用普及的稳定的功用来实现, 然后使用一些不影响我们网站正常使用的 "尖端技术" - 这逐渐就成为了 "逐渐加强". 这种方法的一个例子是在"Go To Print"中描述过的技术, 这种技术可以让进步的浏览器在需求打印的页面上显示出链接的URL,但是又不会破坏不具备这项功用的浏览器的打印的效果.

对于目标转换器而言,什么为未来作出规划, 什么前瞻性, 都几乎被摧毁殆尽了. 浏览器会承诺总是向后兼容. 对于浏览器来说目标转换器就像是个时间机器,  它的想法是当用IE 10来装载IE 7的页面时, IE 10要让本人像IE 7一样的任务, 不管在这些年里发生过什么.

从而, 作为一个开发者, 没有必要追求超理想形状的浏览器. 我甚至可以假设, 浏览器们一直会支持我做的东西, 甚至是那些目光短浅的, 特定浏览器的, 无论如何都需求标准的. 至于浏览器预期将支持的方向: CSS或者JavaScript又或是HTML5...谁又在意呢?

理想调查

那么, 谁在意呢? A List Apart 的读者们, 的确, 以及我们中的大部分. 但是在调查分析后显示, 大多数的网页内容都没有很注重基于标准,向前兼容的准绳.

是的, 我们曾经取得了长足的发展. 对开发者进行的教育也结出了一些果实. 虽然如此, 我们必须正确的对待这些. 我们没有(标准)到达所有的人, 或许永远都不会. 一些网站是依据当前浏览器能做什么进行开发的, 而从不管对照规范能否错误, 或者其他浏览器中的行为能否正确.

这让浏览器厂商在面对他们的缺陷时处于一个进退两难的境地: 修正它或是保留它? 最经典的一个例子是 "Internet Explorer的原始width和height" , 这是对CSS规范的错误执行. IE 团队在发布IE 3后不久就认识到这个问题了...但是不断到了IE 6才真正修复, 这样的延误减慢了CSS的使用, 并引发了所有的JavaScript嗅探和CSS Hacks.

Doctype的转换确实解救了它们, 允许IE 6在"quirks mode"保留旧的(错误的)行为, 在"standards mode"下进行正确的解析 - Mac版本的IE5引进的一个机制, 也很快被其他浏览器采用了.

让我们想一想, 通过Doctype的转换, 浏览器无效的认可了两种形状: 老的和正确的. 这是在Doctype转换出现之前的日子里的一种最新的,最伟大的方法.