瀏覽器內核 (Rendering Engine) 決定網頁如何被解析、排版、渲染。本文系統梳理五大主流內核演進脈絡、代表瀏覽器、JavaScript 引擎對應關係、雙核/多核架構實現原理、關鍵測試基準與國產瀏覽器內核選型現狀,助前端開發、測試、技術選型人員建立完整知識圖譜。
一、五大主流排版引擎演進脈絡
1. Trident (MSHTML) — IE 系譜
- 起源:IE4 (1997) 引入,舊稱 MSHTML。
- 版本對應:
- Trident 1/2/3/4:IE4~IE7 (不遵循 W3C、盒模型差異、hasLayout 怪異)。
- Trident 4.0:IE8 (首支通過 Acid2)。
- Trident 5.0:IE9 (硬體加速、CSS3/HTML5 重大支援)。
- Trident 6.0:IE10 (CSS3 Grid、Flexbox、ES5 完整)。
- Trident 7.0:IE11 (WebGL、SPDY、完整 HTML5)。
- 現狀:IE 2022/06/15 終止支援。Edge 已切換 Chromium (Blink)。Trident 僅存於 Windows 相容性模式 (IE Mode) 與舊版企業系統。
- 基於 Trident 的國產瀏覽器:360 安全/極速、搜狗、QQ 瀏覽器、世界之窗、傲游 (早期)、百度 (早期)、瑞星、綠瀏覽器等。新版多為雙核 (Trident + Blink/WebKit)。
2. Gecko — Firefox 系譜
- 起源:Netscape 6 (2000) 採用,Mozilla 基金會開源維護。
- 特色:跨平台、開源、嚴格遵循 W3C、強大的擴充套件生態 (XUL/XPCOM → WebExtensions)。
- 代表瀏覽器:Firefox、SeaMonkey、Waterfox、Pale Moon、K-Meleon、Tor Browser (硬化版 Firefox)。
- 嵌入式應用:Thunderbird、Songbird (已停止)、Embedded 專案。
3. KHTML — KDE 系譜 (WebKit 前身)
- KDE 專案開發,輕量、快速、嚴格標準相容。代表瀏覽器:Konqueror。現已併入 WebKit 發展。
4. WebKit — 蘋果貢獻、跨平台霸主
- 起源:2001 Apple 從 KHTML 分支,開源 (LGPL/BSD)。
- 里程碑:2003 Safari 採用;2008 Chrome 採用 (後分支為 Blink);2007 iPhone 推動行動網頁標準化。
- 特色:極速渲染、優異標準支援、模組化架構易於嵌入。
- 代表瀏覽器:Safari (macOS/iOS/iPadOS)、iOS 系統內建瀏覽器 (App Store 規定必須用 WebKit)、Android 4.4 前預設瀏覽器、GNOME Web (Epiphany)、Midori。
5. Blink (Chromium) — 當前事實標準
- 起源:2013 Google 從 WebKit 分支 (fork),重構多進程架構、移除非 Chrome 代碼、優化編譯速度 (從 1 天 → 2 小時)。
- 版本節奏:4 週一大版本 (Major),安全更新更頻繁。
- 代表瀏覽器:Chrome、Edge (79+)、Opera (15+)、Vivaldi、Brave、360 極速、搜狗、QQ 瀏覽器、傲游 3+、百度 (新版)、閃電、Vivaldi、Yandex、Microsoft Edge (Chromium 版)。
- JavaScript 引擎:V8 (同步更新)。
6. Presto — Opera 獨家記憶 (已停止開發)
- Opera 7~12 採用,極致標準相容、創新功能 (Mouse Gestures、Speed Dial、Turbo 壓縮代理)。
- Opera 15+ 轉用 Blink,Presto 正式退役。舊版 Opera 12 仍有極客群體維護。
二、JavaScript 引擎對應表 (獨立於排版引擎)
| JS 引擎 | 所屬瀏覽器/版本 | 關鍵技術 |
| Chakra | IE9~IE11, Edge (EdgeHTML) | JIT 編譯、背景編譯執行緒 |
| SpiderMonkey | Firefox 1.0~3.0 | 解釋執行 |
| TraceMonkey | Firefox 3.5~3.6 | 追蹤式 JIT |
| JaegerMonkey | Firefox 4.0~ | 方法 JIT + 類型推論 |
| IonMonkey | Firefox 18~ | 優化編譯器管線 |
| V8 | Chrome, Node.js, Edge (Chromium), 傲游 3+ | Ignition 解釋器 + TurboFan 優化編譯器、Orinoco GC |
| JavaScriptCore (Nitro/SquirrelFish) | Safari, WebKit 系瀏覽器 | 四層編譯管線 (LLInt, Baseline, DFG, FTL) |
| Carakan | Opera 10.5~12 (Presto) | 原生代碼生成、寄存器分配 |
三、關鍵測試基準
| 測試 | 測試重點 | 滿分/目標 | 測試網址 |
| V8 Benchmark / Octane / Speedometer | JS 執行速度 | 分數越高越好 | v8.dev, speedometer.dev |
| Acid3 | 標準相容性 (DOM, CSS, SVG, ECMAScript) | 100/100 | acid3.acidtests.org |
| HTML5 Test | HTML5/相關 API 支援度 | 555+ (持續更新) | html5test.com |
| WebGL Report | WebGL 能力 | 綠燈全通 | webglreport.com |
四、雙核/多核架構實現原理與國產現狀
架構模式
- 進程級隔離:每個標籤頁獨立進程,內核載入於渲染進程。切換內核 = 啟動不同渲染進程 (如 IE Tab 擴充套件啟動 Trident 進程)。
- 內核切換觸發:用戶手動切換、網域名單自動切換 (企業舊系統 → Trident/IE Mode)、User-Agent 偵測、特定 API 相容性檢測。
- 資料同步:Cookie、LocalStorage、Session、快取、下載歷程需在內核間同步 (IPC/共享儲存)。
國產瀏覽器內核選型現狀 (2024)
| 瀏覽器 | 核心內核 | 次要內核 | 模式稱呼 | 備註 |
| 360 極速瀏覽器 | Blink (Chromium) | Trident (IE) | 極速模式 / 兼容模式 | 雙核鼻祖,企業版深度定制 |
| 搜狗瀏覽器 | Blink | Trident | 高速模式 / 兼容模式 | 內核更新極快 (緊跟 Chromium 上游) |
| QQ 瀏覽器 | Blink | Trident | 極速核 / 兼容核 | 騰訊生態整合深 |
| 傲游 6/7 | Blink | Trident | 極速模式 / 兼容模式 | 早期自研 WebKit (Maxthon 3~5),後轉 Blink |
| 百度瀏覽器 | Blink | Trident | 極速模式 / 兼容模式 | 早期 WebKit,後同步 Chromium |
| 世界之窗極速版 | Blink | Trident | 極速 / 兼容 | 原創國產雙核先驅 |
| Edge (Chromium) | Blink | Trident (IE Mode) | Edge / IE 模式 | 企業級 IE Mode 政策管控 |
| Firefox | Gecko | — | — | 單核堅持者,WebExtensions 生態 |
| Safari | WebKit | — | — | 蘋果生態專屬 |
五、給開發者的建議
- 以標準為準,不為特定內核寫 Hack:使用 Autoprefixer、PostCSS、Babel 自動處理前綴與降級。
- 功能偵測替代 UA 嗅探:
if ('fetch' in window)、CSS.supports()、Modernizr。
- 測試矩陣最小化:Chrome 最新、Firefox 最新、Safari 最新、Edge 最新、IE11 (若企業強制) — 覆蓋 Blink, Gecko, WebKit, Trident 四大引擎。
- 關注 IE Mode:企業內部舊系統若依賴 ActiveX/舊 JS,配置 Edge IE Mode 清單,而非要求使用者開 IE。
結語
瀏覽器內核戰爭已塵埃落定:Blink (Chromium) 佔據桌面/行動 85%+ 市佔,WebKit 佔據 iOS 獨佔,Gecko 守護開源陣營,Trident 退守企業相容模式。理解內核演進、JS 引擎架構、雙核切換機制,能讓前端工程師在相容性除錯、效能調優、技術選型時擁有底層視野,不再盲目試錯。