🪟 Internet Explorer

一句话定性

它靠捆绑赢得了第一次浏览器战争,又因为”赢了就躺平”把整个 Web 拖进五年停滞。但它在 IE5 里随手塞进的一个 API——XMLHttpRequest——竟意外引爆了下一个时代。IE 是前端最大的债主,也是 Ajax 的祖父。


一、它是什么 & 出现的时代

Internet Explorer 是微软 1995 年发布的浏览器,渲染引擎是 Trident(MSHTML),后期 JS 引擎是 Chakra。它诞生于 1995-2005 浏览器时代,唯一的使命是干掉 Netscape

微软为什么要做浏览器

比尔·盖茨在 1995 年的内部备忘录《互联网浪潮》中,把 Web 定性为操作系统级威胁:如果所有应用都搬到浏览器里,操作系统(Windows)就沦为无关紧要的底座。微软的应对极其凶狠——不惜一切代价控制这个新入口


二、为什么会出现(解决了上一代什么痛点)

严格说,IE 早期在技术上并没有解决 Netscape 的痛点——它一开始甚至更差。它”解决”的是微软的商业痛点。但客观上,IE 后期(IE5/IE6)确实带来了一些真实的技术进步:

  • DHTML 与 document.all:更强的动态 HTML 操作能力。
  • CSS 支持领先一阵:IE5/IE6 一度比同期对手支持更多 CSS。
  • XMLHttpRequest(IE5,1999):这是 IE 留给世界最重要的礼物——尽管它当时只是为了让 Outlook Web Access 能不刷新页面地收发邮件而做的一个 ActiveX 控件。没人(包括微软自己)意识到它有多重要。

三、为什么会流行(踩中了什么时代红利)

第一次浏览器战争:捆绑即胜利

IE 的流行和技术几乎无关,纯靠分发渠道:

  • 免费:Netscape 还要收费时,IE 完全免费。
  • 预装:每一台 Windows 出厂就带 IE,深度集成进系统(甚至文件资源管理器都用 Trident 渲染)。
  • OEM 协议:微软通过授权条款让 PC 厂商默认装 IE。

用户开机即用,谁还会专门去下载另一个浏览器?到 2002–2003 年,IE6 占据 90%+ 市场。这场胜利如此彻底,以至于引来了美国司法部的反垄断诉讼(微软因捆绑被判违反反垄断法)。

这是 浏览器演进史 反复出现的母题的第一次上演:渠道战胜产品


四、带来的新问题 / 副作用

IE6:前端工程师的集体创伤

  1. 赢了就停止创新:IE6 发布于 2001 年,而下一个版本 IE7 直到 2006 年才出现。整整五年,占据 90% 市场的浏览器几乎零更新。Web 标准的演进被一家垄断者冻结了。
  2. 私有 API 绑架开发者:document.allattachEvent、ActiveX、条件注释 <!--[if IE]>——一整套只属于 IE 的世界,逼着开发者写两套代码。
  3. 著名的 IE 盒模型 bug:IE 把 padding/border 算进 width,和 W3C 标准相反,导致布局永远要写 hack。
  4. 没有开发者工具:调试基本靠 alert()
  5. 安全漏洞频发:ActiveX 成了病毒和木马的温床。

核心矛盾:一个垄断者一旦停止前进,整个行业都被它拖住。 这正是”没有竞争 = 没有进步”的活教材。


五、为什么会衰落 / 现状

IE 的衰落是一条因果链:

IE6 垄断后躺平(2001–2006)
   │
   ├──► 留下巨大的"标准真空" → [[Mozilla-Firefox|Firefox]](2004)借机崛起
   │
   ├──► [[Chrome]](2008)带 V8 入场,性能碾压 → 用户用脚投票
   │
   ↓
微软追赶乏力:IE7/8/9 努力补标准,但积重难返
   │
   ↓
2015 年微软推出 Edge(EdgeHTML 引擎)试图重启,IE 进入"仅兼容"模式
   │
   ↓
2019 年 Edge 放弃自研 EdgeHTML,改用 Chromium(承认引擎竞争失败)
   │
   ↓
2022 年 IE 正式退役(end of life)

现状:已死,但阴影仍在

IE 本体已于 2022 年退役。但”兼容 IE”的幽灵在企业内网、政府系统里又徘徊了很多年。它的引擎 Trident、JS 引擎 Chakra、以及继任者旧 Edge 的 EdgeHTML 全部退场。继任的 Edge 现在是一个 Chromium 套皮浏览器,详见 Chromium-引擎之争


六、对后续技术的影响(因果链)

IE5 塞进 XMLHttpRequest(1999,本为 Outlook Web Access)
        │  被遗忘了六年……
        ↓
Google 用它做出 Gmail(2004) / Google Maps(2005)
        │  "网页居然能像桌面软件一样不刷新更新!"
        ↓
Ajax 一词诞生(2005) ──► 进入 [[2005-2013 Ajax时代]]

并行的副作用链:
IE6 私有 API + 盒模型 bug ──► DOM 难用 + 兼容地狱 ──► [[jQuery]] 用 $ 抹平一切
IE6 长期停滞           ──► [[Mozilla-Firefox|Firefox]] 崛起 ──► 第二次浏览器战争
IE 反垄断案            ──► 厂商不敢再明目张胆捆绑(但 Chrome 用更软的方式做到了)

给后人的两条教训

  1. 技术的爆发往往不在发明的时刻,而在被”正确使用”的时刻:XMLHttpRequest 1999 年就存在,却要等 Google 在 2004 年示范了商业价值才引爆。
  2. 垄断者的停滞是整个生态的灾难:IE6 的五年躺平,让前端付出了二十年的兼容性代价。这也是为什么 Chromium-引擎之争 里”Blink 一家独大”的隐忧值得警惕——历史可能重演。

🔗 相关:浏览器演进史 | Netscape Navigator | Mozilla-Firefox | Chrome | 2005-2013 Ajax时代 | jQuery