瀏覽器引擎

軟件內核使用的網頁渲染引擎

瀏覽器引擎(browser engine),也稱為排版引擎(layout engine)、頁面渲染引擎(rendering engine)或樣版引擎,它是一種軟件元件,負責取得標記式內容(如HTMLXML及圖像檔案等等)、整理資訊(如CSSXSL等),並將排版後的內容輸出至顯示器或印表機。所有網頁瀏覽器電子郵件客戶端電子閱讀器以及其它需要根據表示性的標記語言Presentational markup)來顯示內容的應用程式都需要排版引擎。

Mozilla將其Gecko排版引擎作為獨立於瀏覽器的一個配件之後,「排版引擎」這個詞彙才被廣泛使用[1]。也就是說,除了Mozilla瀏覽器,其它瀏覽器也可以使用Gecko作自己排版引擎。

佈局與渲染

編輯

網頁的佈局英語layout (computing)通常由層疊樣式表(CSS)指定。每個樣式表都是一系列關於頁面呈現方式的規則。例如,一些規則指定排版細節,如字型、顏色和文字大小,而另一些規則則確定圖像的位置。引擎會組合所有相關的CSS規則,以計算出將在螢幕上繪製的視覺表示的精確圖形坐標。[2][3]

一些引擎可能會在頁面資源下載完成之前就開始渲染。隨着接收到更多數據,這可能會導致視覺變化,例如出現逐漸載入的圖像或無樣式內容閃爍英語flash of unstyled content[4]

著名的引擎

編輯

Mozilla開放原始碼專案的網頁瀏覽器引擎Gecko,被Mozilla代碼庫中的各種產品所使用,其中包括Firefox網頁瀏覽器、Thunderbird電子郵件客戶端SeaMonkey網絡套件[5]Goanna是Gecko的一個分支[6]

KDE的開放原始碼KHTML引擎在KDE的Konqueror網頁瀏覽器使用,後來成為WebKit的基礎,WebKit是Apple Safari和早期Google Chrome網頁瀏覽器的引擎[7]

Google最初使用WebKit用於Chrome瀏覽器,但最終將其分支為自行建構的Blink引擎[8]。所有以Chromium為基礎的瀏覽器都使用Blink,使用CEFElectron或任何其他Chromium嵌入式框架構建的應用程式也是如此。

Internet Explorer的網頁瀏覽器引擎Trident,被Microsoft Windows平台的許多應用程式如Outlook Express、某些版本的Microsoft OutlookWinampRealPlayer中的迷你瀏覽器所使用。Trident已經被EdgeHTML所取代,2019年EdgeHTML被Blink取代[9][10]

Opera軟件公司的專有的Presto引擎被授權給其他許多軟件供應商,也在Opera瀏覽器所使用,直到2013年被Blink取代[11]

時間軸

編輯

以下列出引擎仍持續依循網頁標準更新的軟件開發活躍期間。

參考文獻

編輯
  1. ^ nglayout project: identity crisis. Mozilla.org. [2012-10-31]. (原始內容存檔於2011-06-29). 
  2. ^ Behind the scenes of modern web browsers. Tali Garsiel. [21 April 2018]. 
  3. ^ How Blink Works. Google. [12 March 2024]. 
  4. ^ Boudreaux, Ryan. How to prevent Flash of Unstyled Content on your websites. TechRepublic. October 18, 2013 [2021-10-09]. (原始內容存檔於2021-03-05) (英語). 
  5. ^ Gecko. Mozilla. [2018-04-21]. (原始內容存檔於2014-06-04). 
  6. ^ Introducing Goanna. M.C. Straver. 2015-06-22 [2018-04-21]. (原始內容存檔於2020-11-11). 
  7. ^ Paul Festa. Apple snub stings Mozilla. CNET Networks. 2003-01-14 [2017-02-16]. (原始內容存檔於2012-10-25). 
  8. ^ Bright, Peter. Google going its own way, forking WebKit rendering engine. Ars Technica. Conde Nast. April 3, 2013 [March 9, 2017]. (原始內容存檔於2020-12-21). 
  9. ^ Belfiore, Joe, Microsoft Edge: Making the web better through more open source collaboration, Microsoft, 2018-12-06 [2019-11-16], (原始內容存檔於2021-04-13) 
  10. ^ Microsoft Edge and Chromium Open Source: Our Intent. Microsoft Edge Team. 6 December 2018 [8 December 2018]. (原始內容存檔於2020-04-08). 
  11. ^ Opera confirms it will follow Google and ditch WebKit for Blink, as part of its commitment to Chromium. thenextweb. 2013-04-04 [2019-11-16]. (原始內容存檔於2021-03-09).