IE8与Version Targeting,新标准,新战争
[4]次炮击 / 扯淡日期: 25-Jan-2008 / 扯淡主持: 店长
更新:本文的争论告一段落,3月初在IEblog上的做出回应,宣布默认使用IE8的标准渲染模式,撤回了之前默认为IE7渲染模式的决定。(真讽刺) 试问各位旅客最近听说了IE的哪条新闻?是Opera对微软藐视W3C标准的控告,还是IE8内测版突破ACID2渲染测试的公告?或者更进一步,你甚至留意到IE8与它那最新功能:神奇的Version Targeting?无论如何,IE7带来的各种用户怒吼是微软所不希望承受的,而Version Targeting是他们的妥协方案。 停,请停下,Version Targeting是啥?为什么我要在意它? 事实是微软提出的Version Targeting(店长暂译“指定版本”,简称VT)就是为了让你意识不到它的存在。IE开发组的Chris Wilson在上面链接的文章中解释了IE8中的VT工作方式: 1. Quirks mode(当html文档缺乏标准doctype时的渲染模式)的工作方式不变; 2. Standard mode,IE8将默认沿用IE7对标准页面的渲染模式; 3. 网络上暂称Current ("Edge") mode,懂得标准的网页开发者将可以通过meta标签/http请求的header信息定义IE8使用最新的渲染模式。 简单点说,假设IE8正式版的渲染引擎真的通过了ACID2测试,也需要开发者额外添加一条meta信息它才会启用这个新版本引擎,否则浏览器将自动沿用IE7当前的引擎。撇开Opera的指控不谈,这是微软的又一个阴谋吗? 微软启用VT的对外理由非常简单:兼容性。他们的论点是在IE6向IE7的过渡中用户反映了大量网站不兼容的问题,这是由于(引用Chris的原文)“网站开发者期望IE7的工作方式与IE6相同,即便是在标准渲染模式下。”换句话说,由于大多数开发者无意识的使用了标准doctype,使得经典的渲染模式开关不再有效,为了不影响这些网站的使用,IE8必须继续沿用IE7的渲染引擎为默认引擎,以避免进一步造成混乱。 信不信由你,“新瓶装旧酒”,居然在“为了兼容性”的言辞下变成了用户友好的新功能。现在你该明白为什么有许多新闻说IE8有“三个渲染引擎”了,多出来的一个应该是IE7正在使用的Trident V(如果微软不是在忽悠WaSP)。 对于微软启用的“新标准”,网络上自然又是各家自有各家的说法。对网页标准感兴趣的旅客一定听说过PPK,Eric Meyer和Jeffrey Zeldman的大名,有趣的是,长期与微软争锋相对的他们这次非常和谐的站在IE的一方。WaSP内部的意见也有很大分歧,很多成员是在ALA的两篇文章发布之后才知道是WaSP的领头们构思了这个Version Targeting的建议。 支持方的观点(目前占少数)—— 没有VT的支持,IE开发团队根本没机会考虑标准化和持续更新的事情,因为新版本总在破坏网页渲染的模式(换句话说,不要说IE6,连IE7都距离W3C标准太远,持续更新引擎会让开发者/用户陷入困境。提供更新反而导致IE市场占有率下降,那领导们当然宁愿不更新引擎);- Eric Meyer Version Targeting保护不懂网页标准的开发者与用户,这相比要求他们在一夜之间学会网页标准更加实际(如果IE团队选择不支持W3C标准,那标准也就失去了意义); – Jeff Zeldman VT既然是微软开发团队自己接受的标准鉴别模式,那它应该100%工作,并且不影响其他浏览器,我们也无需再劳烦使用不稳定的浏览器嗅探。 – PPK 反对方的观点(目前占多数)—— Version Targeting将阻碍Progressive Enhancement的发展,放弃默认支持更标准的设计,反而选择继续蒙骗不知情的开发者,暗示旧渲染引擎的行为是“正常”的; – Jeremy Keith 对开发者的“伤害”被夸大了,IE8的新引擎不会在IE7之上造成更大破坏,不使用doctype的产品也不受到新引擎的影响; – ALA上的留言 微软应该将金钱与时间用在宣传标准与教育用户上,而不是号称“亡羊补牢”的将标准与兼容性联系起来……这是IE五年无引擎更新带来的后果,应该由微软自己承担; – Chris Heilmann Quirk mode本来就是个向标准化过渡的产物,如果IE8还在引入“异名同义”的新Quirk [...]









