Trident(也常被称为 MSHTML)是微软为 Internet Explorer 开发的浏览器排版引擎,从 1997 年 IE 4 开始使用,一直到 IE 11 中的 Trident 7.0(2013年)。在它的生命周期里,这个引擎驱动了全球超过一万亿次网页浏览。与 WebKit(Apple)、Gecko(Mozilla)、Blink(Google)并称,Trident 是浏览器引擎史上最重要的四大渲染引擎之一。更重要的是,它是唯一一个被深度集成到操作系统内核中的浏览器引擎——MSHTML.dll 至今仍然是 Windows 的核心系统组件。
本文从技术角度梳理 Trident 七个大版本的演进过程、每个版本的关键架构决策、以及这些决策如何塑造了今天的 Web 兼容性格局。理解 Trident 的历史,也就理解了为什么 2026 年的 Windows 中仍然存在一个 1997 年的浏览器引擎。
这是微软第一次自研浏览器排版引擎。之前的 IE 1~3 使用的是从 Spyglass 公司授权的 Mosaic 代码——本质上和 Netscape Navigator 的早期版本是同源的。
Trident 1.0 最关键的架构决策不是技术上的,而是集成策略上的:将排版引擎封装为 COM 组件,以 DLL 形式(MSHTML.dll)注册到 Windows 系统中。这意味着任何 Windows 程序都可以通过 COM 接口在自己的窗口中嵌入一个完整的 Web 浏览器——这就是 WebBrowser 控件的起源。
这个决策影响深远:二十九年后的今天,从 Outlook 的邮件预览、Steam 的商店页面、到无数工业 HMI(人机界面)软件的嵌入式浏览器,底层调用的仍然是 MSHTML.dll。这种深度集成使 Trident 不可能被简单地"卸载"——它是 Windows 操作系统的一部分,不是独立的应用程序。这也解释了为什么即使 IE 桌面应用已经退役,MSHTML.dll 的安全补丁仍然在 Windows Update 中发布。
Trident 1.0 的另一个特点是早期对 DHTML(Dynamic HTML)的支持——允许网页通过 JavaScript 动态修改内容和样式,在 1997 年这是突破性的功能。
IE 5(对应 Trident 2.0)是第一个获得真正广泛采用的 IE 版本。它在技术上引入了几个具有历史意义的关键特性:
Trident 2.0 在 Web 标准支持上还非常原始——CSS 2 的覆盖范围不到 30%。但它的设计哲学——将 Web 技术深度整合到操作系统——被证明具有惊人的前瞻性。今天 Apple 和 Google 在 iOS/Android 上做的事情,微软在 1999 年就在 Windows 中做过了。
一个过渡版本,但有一个影响深远的"遗产":Trident 3.0 开始支持 CSS 盒模型(Box Model),但在 width 和 height 的计算方式上与 W3C 标准存在差异——Trident 将 padding 和 border 包含在 width 内部计算,而 W3C 标准将它们计算在外部。这就是后来让无数前端开发者头疼的"IE 盒模型 bug"。
讽刺的是,W3C 后来在 CSS3 中引入了 box-sizing: border-box,表现与 IE 的盒模型相同——而且今天几乎所有前端框架的全局 CSS reset 中都会设置 *, *::before, *::after { box-sizing: border-box; }。Trident 3.0 在 2000 年被当作 bug 的行为,在 2026 年成为了行业标准。
Trident 3.0 还加入了对 position: fixed 和打印相关 CSS 属性的支持,为 IE 5.5 在企业办公场景中的应用奠定了基础。
这一版引擎在技术上并不特别出色——CSS 2.1 支持不完整,PNG 透明度有问题(Alpha 通道渲染为灰色),JavaScript 引擎仍然很慢。但它是历史上装机量最高的浏览器引擎:随着 Windows XP 的全球普及,Trident 4.0 覆盖了约 10 亿台设备,在 2004 年达到了约 95% 的全球市场份额。
技术上值得记录的改进:
XMLHttpRequest 非 ActiveX 原生版本(IE 7 最终实现)的过渡阶段。!important 规则和 cursor 属性的支持。IE 6 对 Web 发展的真实影响是负面的:从 2001 年到 2006 年(IE 7 发布),整整 5 年没有任何大版本更新。微软因为打垮了 Netscape 后失去了竞争压力而解散了 IE 团队。这使得 Trident 4.0 成为 Web 标准推进的最大阻力——开发者不得不为这个引擎编写大量 CSS hack、条件注释和 JavaScript polyfill。
Firefox 在 2004-2006 年的快速崛起(从 0% 冲到 30%+ 的市场份额)让微软感受到了久违的压力。Trident 5.0 相比 4.0 有质的飞跃,分两个阶段发布:
Trident 5.0 的一个关键架构改进是"松散耦合 IE"(Loosely-Coupled IE,LCIE):将浏览器 UI 框架和各个标签页的渲染引擎分离到不同进程中。一个标签页崩溃不再拖垮整个浏览器——只需要刷新那个标签页即可。这个架构为后来 Chrome 的多进程架构和 Edge 的进程模型奠定了基础。
这是 Trident 历史上最大的技术跃升。IE 9 的开发团队几乎重写了渲染管线:
border-radius、@font-face、transition、transform 等。但 IE 9/10 有一个致命的市场限制:它们仅支持 Windows 7 SP1 及以上系统。当时约 40% 的全球 PC 仍在运行 Windows XP,这些用户无法升级到 IE 9/10,只能停留在 IE 8(或偷偷用 Chrome)。这个平台限制策略在技术上是合理的——XP 缺少 Direct2D、DirectWrite 等 GPU 加速所需的底层组件——但在市场上加速了 IE 份额的下滑。Chrome 在 2012 年超越 IE 成为全球第一大浏览器。
这是 Trident 引擎的最终形态,也是最完善的一个版本。IE 11 在发布时是一个合格的现代浏览器——如果不是微软随后放弃了 IE 品牌转而开发 Edge,Trident 7.0 的生命周期可能会更长。关键改进:
border-image、新版 flexbox 语法(终于与标准一致)、gradient。<picture> 元素(响应式图片)、<main> 语义元素。2022 年 6 月 15 日,IE 11 桌面应用正式退役。但 Trident 引擎并未"死亡"——它只是换了一种方式继续存在:
客观评价:Trident 的技术负债——对 W3C 标准的偏差实现、ActiveX 的安全模型缺陷、长期缺乏竞争导致的创新停滞——确实让它无法在现代 Web 中和 Chromium、Gecko、WebKit 竞争。但作为一款服役了超过 25 年、经历了 7 个大版本的浏览器引擎,它见证并推动了整个互联网从静态文档到动态应用的技术变革。XMLHttpRequest、DHTML、硬件加速渲染、AppContainer 沙箱——这些 Trident 引入或推广的技术,至今仍是 Web 架构的基石。