Web标准教程

关注公众号 jb51net

关闭
网页制作 > CSS > Web标准教程 >

Web标准:文档类型和网页浏览器

佚名

逐步加强(progressive enhancement)哪去了?

使用了这个能把你的网站为某个浏览器版本进行锁定是相当神奇的, 这样你的网站在将来也表现出不错的可用性, 但是这样做会不会破坏了逐步加强的概念了呢? 是不是我们都要改变我们建站的方法了呢? 我们能不能继续自动应用新的CSS属性, 它们会变得可用吗? 这是当我们还是讨论"版本目标"的可行性时我的许多疑问中的几个.

例如, 让我们假设 IE 8不再继续支持生成内容(generated content) - 如果Acid2公布任何迹象的话, 它会, 请容忍我把它作为一个例子: 我们在"锁定了" IE 8 的网站上使用生成内容的话, 另外除了IE之外的现代浏览器会渲染生成内容, 但是就算是IE 9又支持了生成内容, 有人用IE 9访问这个网站的话, 还是会看不到生成内容, 因为这个网站被锁定在 IE 8 了. 如果把这个网站的锁定升级到IE 9, 那么生成内容就显示出来了, 这是和逐步加强相违背的.

失去了逐步加强这个特点着实让我头痛, 但是这种行为是会发生的最好的事情了, 尤其是当网站是面向大众的. 毕竟, 我们不应该去假设浏览器在将来会是什么样. 如果 IE 9 的一个更改破坏了我们网站的布局或是我们的script中的一个功能的话, 这可能对于我们的用户来说会灾难性的, 并且会给我们的团队带来疯狂的混乱 - 在新浏览器下修复这个网站的功能(我们已经上了太多条船了). 针对版本给我们团队一种决定什么时候支持新浏览器的能力, 更重要的是, 给我们足够的时间作出必要的调整来支持新浏览器.

针对版本意味着逐步加强的终结吗? 在这个问题上, 不是. 首先, 我们仍然在未来的几年内会处理遗留 / 预先锁定浏览器, 并逐步加强, 这是个行之有效的方法将在他们中间逐步支持不同阶段的CSS和JavaScript. 此外, 还有一个地方提供IE浏览器的样式和脚本的补丁, 虽然我们希望随着时间的过去这样的需求会越来越少. 最后, 用逐步加强技术撰写JavaScript仍旧会很大程度上减少为了准备支持新浏览器而作出的重构时间. 技巧延伸: 生活在"边缘"

对于那些乐意抛弃严谨的态度的, 不计后果的, 或者其他不计后果的放任的口语化编程习惯, IE 会支持一个关键词: "edge:"

<meta http-equiv="X-UA-Compatible" content="IE=edge" />

这个选项, 虽然我们极力阻止, 但是这会让一个网站把版本锁定在所发布的最新的IE浏览器上. 这比设定一个不切实际的 IE=1000要来的清晰一点, 是吧? 但是从版本目标的所有优点来说, "edge"值除了实验性的网站外都是不切实际的吧. 那是因为就算是 Eric Meyer也没办法预料在新版本浏览器中会有什么布局或是脚本的缺陷. 对未来的希望

多年来, 我们设计师和开发者都渴望着有种方法可以让我们的网站更可靠. 除了为撰写跨平台的样式和脚本而头痛, 我们还必须处理一些由于新浏览器的发布而造成的一些不可预料的损坏. 向客户, 老板和用户解释这个不可预期的损坏从来不是个开心的差事. 但是, 通过IE 8的版本目标的介绍, 让隧道的尽头出现了一点光亮. 我, 作为其中一个, 希望其他的浏览器渲染都一起参加Microsoft来贯彻这个方法.

个人并不是很赞同,这位标准推行者并没有把目标放在如何让标准的推行成为要务,却又推出了IE 8中的version targeting功能,只能说,IE真的会惯坏一批开发者,不规范的编码,和大量使用私有方法,难道又要浮上水面吗?很难的推行了标准好些年,又准备回到那个混乱的年代了么...IE6 - IE7的转变造成的大范围灾难说到底应该责怪谁呢? 不是M$自己我行我素的精神么?

PS. 这篇很像是M$的软文...

过阵子再翻译下Eric Meyer跳出来反对这种理论的文章, 理论性的争论还是相当精彩的