🪟 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:前端工程师的集体创伤
- 赢了就停止创新:IE6 发布于 2001 年,而下一个版本 IE7 直到 2006 年才出现。整整五年,占据 90% 市场的浏览器几乎零更新。Web 标准的演进被一家垄断者冻结了。
- 私有 API 绑架开发者:
document.all、attachEvent、ActiveX、条件注释<!--[if IE]>——一整套只属于 IE 的世界,逼着开发者写两套代码。- 著名的 IE 盒模型 bug:IE 把
padding/border算进width,和 W3C 标准相反,导致布局永远要写 hack。- 没有开发者工具:调试基本靠
alert()。- 安全漏洞频发: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 用更软的方式做到了)
给后人的两条教训
- 技术的爆发往往不在发明的时刻,而在被”正确使用”的时刻:
XMLHttpRequest1999 年就存在,却要等 Google 在 2004 年示范了商业价值才引爆。- 垄断者的停滞是整个生态的灾难:IE6 的五年躺平,让前端付出了二十年的兼容性代价。这也是为什么 Chromium-引擎之争 里”Blink 一家独大”的隐忧值得警惕——历史可能重演。
🔗 相关:浏览器演进史 | Netscape Navigator | Mozilla-Firefox | Chrome | 2005-2013 Ajax时代 | jQuery