瀏覽器引擎、渲染引擎與JavaScript引擎的區別

汗牛充栋發表於2024-09-06

瀏覽器引擎其實是包含了渲染引擎及Javascript引擎的, 它是一個大而全, 負責總控的程式。

瀏覽器引擎 (Browser Engine)

瀏覽器引擎是管理和協調瀏覽器各個子系統的中央控制單元。它處理瀏覽器的高層邏輯,處理網路請求、JavaScript 執行、外掛互動等。例如接收使用者請求、載入資源、解析 HTML 文件、處理 JavaScript 指令碼、管理外掛等。

  • 職責

    • 解析使用者輸入的 URL,併發出 HTTP 請求來獲取內容。
    • 管理和協調渲染引擎的工作。
    • 處理 JavaScript 引擎的執行。
    • 處理瀏覽器的頁面導航、歷史記錄、網路請求、快取等。
  • 典型的瀏覽器引擎

    • Blink:Chrome 和 Edge 使用的瀏覽器引擎。
    • Gecko:Mozilla Firefox 使用的引擎。
    • WebKit:Safari 使用的引擎。

渲染引擎 (Rendering Engine)

渲染引擎負責將 HTML、CSS 和 JavaScript 解析並轉換為視覺化的內容。它透過佈局和繪製,將文件繪製到螢幕上。

  • 職責
    • 解析 HTML 並構建 DOM(文件物件模型)樹。
    • 解析 CSS 並構建 CSSOM(CSS 物件模型)樹。
    • 結合 DOM 和 CSSOM 樹,建立渲染樹。
    • 執行佈局計算,確定元素的大小和位置。
    • 繪製頁面內容到螢幕上。

目前最常用的渲染引擎包括:

  • Blink:主流的現代渲染引擎,廣泛應用於 Chrome、Edge 等瀏覽器。
  • WebKit:Safari 瀏覽器的核心引擎,最佳化蘋果裝置上的效能。
  • Gecko:Mozilla Firefox 的渲染引擎,開源、支援隱私保護。

可見, 渲染引擎即是瀏覽器引擎, 屬於瀏覽器引擎的一部分

JavaScript 引擎

JavaScript 引擎主要就是JavaScript語言的直譯器, 用於解釋執行JavaScript程式碼。

常見的瀏覽器引擎:

  • V8

    • V8 是 Google 開發的開源高效能 JavaScript 引擎,用於 Chrome 瀏覽器和 Node.js。
    • V8 負責解釋和執行 JavaScript 程式碼。
  • SpiderMonkey

    • SpiderMonkey 是 Mozilla Firefox 瀏覽器使用的 JavaScript 引擎。
  • JavaScriptCore

    • JavaScriptCore 是 WebKit 中使用的 JavaScript 引擎,最初由 Apple 開發。

相關文章