搜索

2009年8月23日星期日

我为什么讨厌 Internet Explorer

我很讨厌IE,事实上,几乎所有的网页设计师(下面用“作者”一词)都讨厌它,下面我来告诉你们为什么:

浏览器的工作模式

网页设计师(以下称之为“作者”)制作网页→浏览器显示它。
鉴于我们希望同样一份网页可以得体的显示在不同的设备上——例如桌面显示器或者手机……,而这些设备的尺寸、特性又各不相同,显然你不能在手机屏幕上使用跟桌面显示器一样大小的字体。
而要求作者为每一个设备单独指定字体、颜色、位置……不仅麻烦,而且设备类型又无法穷尽,所以W3C(互联网规范的制定者,一个非盈利性国际组织)采用了这样的设计方案:
作者可以选择只进行笼统的描述(例如,我写这篇文章的时候,使用了“中”这个尺寸来描述正文),而各个设备负责解释这些笼统的描述(例如手机浏览器肯定倾向于显示一个小号的“中”,而桌面显示器显然又另有解释),这样作者的一份网页可以在各种设备上得到得体的显示。
这一切运转的很好,直到IE浏览器的出现:

IE浏览器

在互联网的早期,网景公司的Netscape浏览器是最为流行的浏览器,它基本遵守W3C的各项规范,而由于W3C规范是公开的,任何人可以免费取得,所以任何公司都可以开发出自己的浏览器,而用户可以选择自己喜欢的浏览器,所有这些浏览器所显示的网页基本都是一致的——只要他们遵守W3C的规范。
IE浏览器是个特例。
当微软公司打算进入这个市场的时候,它采取了一个比较特别的做法:
部分的修改W3C的规范,而又不公开他修改了哪些部分。
打个比方(这个例子是虚拟的):假设W3C要求1+1=2,那么IE浏览器解释为1+1=3。其结果是所有遵守W3C规范的网页在IE浏览器上得到了1+1=3的结果,而不是正确的2。如果你打算“兼容”IE浏览器的话,你得写成1+1=3——而这样的写法只能在IE上得到正确的结果,而其他所有坚持W3C标准的浏览器显示这种网页的时候都“不正常”。更重要的是,微软公司从来没有一个列表来宣告它在哪些技术细节上动了手脚——一切要靠大家自己摸索,或者,购买微软的网页设计软件自动生成符合“微软标准”的代码!
鉴于网景公司的主要业务就是浏览器——它的浏览器是要收费的,而微软进入这个市场之后采取了免费的政策(和Windows捆绑),所以网景公司迅速失败——谁都喜欢免费的产品。然后就是1+1=3的IE战胜了1+1=2的网景,其实更重要的是它战胜了W3C!微软公司变成了互联网标准的事实制定者。
现在微软是这样一个互联网标准的制定者:它事实上在制定微软专有的规范,它名义上宣称兼容W3C,它从来没有公开过哪些规范它自己做了专有的修改。
结果是:作者要么设计出IE only的网页,要么遵守W3C的规范,制作出“非IE, only”的网页。

IE 6

  • IE 6于2001年08月发布
  • IE 7于2005年02月发布
时隔4年!要知道,在微软和网景进行浏览器大战的时代,双方每个几个月就发布一个浏览器的新版本,整个浏览器领域新技术层出不穷。
IE 6如此长寿的原因只有一个:网景公司已经垮了。而微软在消灭到网景之后就迅速忘记了没有利润的浏览器市场。或者说,微软在利用停滞的浏览器拖慢整个互联网行业的发展,进而给自己转型(转变为互联网公司)提供时间。
在这段时间内,不管W3C制定出什么新的技术,反正IE一句“不支持”,就让标准委员会的劳动灰飞烟灭。
长寿的IE 6在中国制造出了大量的“IE only”网站,进而使非IE浏览器在显示中国的这些网站的时候出现这样那样的问题,消费者自然会认为是浏览器的问题——所以他们会更加依赖IE。这就是微软公司的核心竞争力。而要修改这些“IE only”的代码,无异于把整个中国互联网重写一遍!
而欧美的设计师面对这个问题的时候通常给出了一个脚踏两只船的方案:网站基本构架按照W3C规范来,另外单独为IE设计一套专用代码,在用户访问的时候检测用户浏览器型号,如果是IE,那么另案处理。
这样的方案导致后来一个非常搞笑的行为:IE浏览器把自己标记为“非IE”,企图蒙混过关。

无耻要有个限度!

微软这样做的结果是:整个互联网行业都愤怒了!专业人士几乎在所有可以选择的情况下,放弃微软的技术。以Mozilla Firefox为代表的新一代浏览器以全面支持W3C最新规范的姿态出现。
事实上,整个互联网行业自发的要求回归W3C规范。
而法律界终于开始行动了,欧盟和美国针对微软的反垄断调查一直在进行,欧盟要求微软支持W3C规范、不得在欧盟范围内捆绑IE浏览器等等,微软面临巨额罚款,甚至拆分的局面,最后:
微软宣布IE 8会全面兼容W3C规范。但是,我记得这已经不是微软第一次做出这种态度了,我依稀记得微软在IE 7发布的时候也表示会兼容W3C规范——这是一家不守信用的公司。尤其是如果你留意到微软在IE 8的宣传页面中是这样形容原本就是它自己一手造成的“兼容性”问题的时候。
这就是为什么,我如此讨厌IE的原因,事实上,更多的事
情我做不了,我只能说,从我开始,我所设计的所有网页,不考虑IE浏览器——事实上设计师本来就不应当单独考虑某个浏览器——电视台会制作只能在某个品牌的电视机上播放的电视节目吗?你会使用只能播放某个电视台节目的电视机吗?,互联网的精神本来就是自由与分享,让专有平台和专有代码去死吧!

没有评论:

发表评论