浏览器引擎

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

浏览器引擎(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).