IE8与Version Targeting,新标准,新战争

更新:本文的争论告一段落,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)。

对于微软启用的“新标准”,网络上自然又是各家自有各家的说法。对网页标准感兴趣的旅客一定听说过PPKEric MeyerJeffrey 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 mode,这只会给网页标准化带来负面影响; – Anne van Kesteren

  • VT将给IE团队带来太多困难,在一款浏览器内加入多个渲染引擎本身增加了IE的体积,维护浏览器安全时又需要同时照顾到每个引擎,即便成功推出,用户是否会接受新产品也是个大问题。 – Robert O’Callahan

还有一部分开发者对此保持审慎态度……不过他们似乎都对微软的闭门NDA(不泄密协议)讨论表示不信任。

考虑到IE7/Vista的装机量依旧很低,导致微软不得不考虑将其列为“重要更新”以提高安装率,IE8的将来不甚光明。如何维持市场占有率是微软的首要问题,Version Targeting放在IE7也许有效,留待IE8则是为时已晚。站在局域网开发者的角度来说,假若IE8不支持IE6的渲染模式,那它对兼容也没什么好处。因此我非常怀疑VT的可行性,如果它不幸带来更多混乱,或是干脆被延迟到IE9,我都不会惊讶。

新的标准化战争在IE8还没有展露头角时就开始了。不同于以往的是,唇枪舌战将不局限在微软身上。WaSP领导与成员间急需的交流以及其他浏览器开发团队希望在IE8时代来临前打破垄断的野望,都给标准化带来不安的因素

完。

最后冲刺:客栈24小时主题更新预告。

更新:已经到达体能极限,成功完成IE7,FF2,Opera9的试调,估计Safari也能正常显示。IE6在使用standalone的情况下勉强整理到能用能看的地步,果然从上个自制主题Anime Connection迁移到这个Byte World绝非易事,IE6的功能障碍和它在中国大陆的占有率让开发新主题成为一种折磨……

如果你使用IE6,或者是任何对应的IE shell,例如世界之窗,Maxthon,Greenbrowser等等,请逛一逛新设计,有什么影响阅读的问题请报告。

来客栈的Safari用户比较少(当然我们也不是苹果的fans),如果有看到本文的也请帮忙检查下各类功能。

update01.jpg

主题以大致完成,现在进入排除bug的时光

主题更新告一段落,更多功能今后有时间再加入,至于IE6,它再不死我们只能专门为它制订全套CSS了。

顺应IE7和Firefox2.0,站点基本更新。

风格还是没变,只是一些小的字体调整,加入了点恶搞功能而已。

既要网页标准又要长得好看果然是很困难的事情。

updates_thumb.gif

另外本来想写个IE7 vs Firefox 2.0 vs Maxthon 2.0 评测的。没时间,没精力。现在唯一知道的是——

IE7很神气,而且偷得技能也不少;

FF2.0很正常,内涵变得比外貌多;

Maxthon 2.0很糟糕,用回Maxthon 1.5(我居然还能用);

另外用内存最少的的确是FF,如果只是开tab的话。

以上。

IE7正式放出?哼哼,Yahoo的市场意识不错。

Yahoo! + IE7 = Evil ?

IE7这摊事情很简单,无须我多说废话了。

然而Yahoo!抢先一步放出IE7的完整版(啊Yahoo加强版才对)实在让我惊讶,这到底是微软提前和Yahoo商量好的事情呢?还是Yahoo不理会商业秘密,坚决通过首先发布IE7来抢占搜索引擎市场?早前在Techcrunch上看到有关M$和Y!向G狗宣战的文章的确耐人寻味,或许IE7就是那号角吹响的第一步?

另外IE7的默认搜索引擎战火连绵也不是一天两天的事情了,最近微软公开宣布IE7的默认搜索引擎将在用户第一次打开时手动设置(IE会自动提供一系列搜索引擎的名字以供选择),放弃默认的Live Search也是息事宁人的做法吧。

而Yahoo是不是就趁机狸猫换太子把自己设置为默认搜索站点就不而得知了。

无论如何,IE7的到来总算为长达6年的口水战画上了终止符。

(当然,不久将来Firefox 2.0的出现也必然会让新一轮的口水战2.0打得如火如荼吧?)

更新1:

Maxthon的用户注意,安装IE7可是会毁了你的Maxthon正式版哦,如果还不打算用beta版的话,请暂时留待Maxthon 2.0出炉后再升级吧。

更新2:

在找不流Yahoo血的纯IE7正式版?请到softpedia看看吧。

更新3:

微软怎么可能让雅虎抢下头彩?!英文官方站已经更新

IE7,Oh my God you are already here … but at Yahoo ?

IE7 Logo

There really isn’t much to say about this.

I think people should all know IE7 is much hotter than its predecessor by now.

But what I don’t really expect is M$ let Y! to win the top prize here.

6 years, all the waiting pressure & sweety hands, eventually crashed down onto Y! ?

At least I definitely failed to see why … A  strategy to avoid high traffic ? Maybe.

if Microsoft.com can’t handle 95% of PC customers in the world, then they might as well sell less vista.

Alright then, no more random talk, here is the link, IE7 optimized for Yahoo! for all you IE7 + Yahoo! enthusiasts out there. 

Updates: So M$ WASN’T abandoning its place in the release game, the official download page is now up & running, Rock ON Googlers&M$-nerds !

(How ’bout a IE7 for Google then ? No, not yet.)

And for the time being, the legendary Maxthon can’t seem to work after a IE7 switch, hope its beta would step up soon.

Ends. Await further Updates.

浏览器标准的重要性

兼容与完美,在网络的领域里是不能共存的;至少,没有两全其美的时候。

说话DF我为了通过W3C对于Xhtml和CSS所设定的标准检查,千辛万苦的把那些顽固不化的Wordpress插件整理了一遍。

终于在06年1月23日23时得到了神的爱护……xhtml transitional valid and css (profile 2) valid

然而在06年1月24日0时我发现神的爱护是有代价的:

width: 300px;
/* ie5win fudge begins */
voice-family: "\"}\"";
voice-family:inherit;
width: 270px;
}

不知道是谁想出了这种“办法”,用定义两次Width的方式解决了兼容问题。

IE5并不能正确读取voice-family: “\”}\””; voice-family:inherit;这两段,所以在读取第二个Width前就放弃读取#content了。从而它的Width是300px;反之,由于IE6支持voice-family: “\”}\””;voice-family:inherit;因此第二个Width值就会覆盖第一个Width值,最终得出Width=270px。这样便能在同一个Class里定义两个Width值。

(而实际上这是重复定义的典型,不过并不会在其他浏览器产生问题。)

2。同时支持Firefox和IE。

!important是CSS1中就有的定义语句,用以提升某个CSS值的优先级。

例如

background:url('1.png') !important;
background: transparent;
filter: progid: DXImageTransform.Microsoft.AlphaImageLoader(src='1.png', sizingMethod='scale');
height: 128px;
width: 128px;

这也是重复定义的运用,由于IE并不支持!important,所以第二条background的值就会覆盖第一条的值,并用AlphaImageLoader读取图片1.png。而其他核心的浏览器支持!important,background值不会被覆盖,所以也正常显示图片。

(真正引起错误的是progid: DXImageTransform.Microsoft.AlphaImageLoaderCSS的正规定义里没有他们,实际上,Filter和网页过渡一样,本来就是IE自身的CSS。)

没有办法,硬着头皮改吧。

总结:兼容,理所当然;然而权衡利弊,为了今后网络服务的快速发展,IE你也是时候反省一下自己了,别老要我们用户出力啊。

附,延伸阅读:

1。PNG 文件在 Internet Explorer 6.0 中不显示为透明
2。Windows Explorer vs. the Standards(英文)
3。Understanding and Solving Internet Explorer Leak Patterns(英文