浏览器引擎(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]. (原始内容存档于2018-04-18). 
  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). 

📚 Artikel Terkait di Wikipedia

PyQt

trUtf8("问候(&S)"), self) self.setLayout(QVBoxLayout()) self.layout().addWidget(self.outputArea) self.layout().addWidget(self.helloButton) self.helloButton

可重組計算

可重組計算(英語:Reconfigurable computing)是一種具有高度彈性運算組織構造(英语:computing fabric)的電腦處理方式(英语:computer processing)。和使用平常的微處理器主要不同的地方在於,可重組計算具有能力對資料路徑(英语:data path)和控制流程做實質上的改變。

双曲树

(原始内容存档于2017-05-10).  US patent 5590250,Lamping; John O. & Rao; Ramana B.,「Layout of node-link structures in space with negative curvature」,指定于Xerox Corporation 

用户界面标记语言

declarative user interface language which defines the widgets, application layout and scripting elements (using JavaScript) to create your application. LZX

故障容許度

Brian; Lee, P.A.; Treleaven, P. C. Reliability Issues in Computing System Design. ACM Computing Surveys. June 1978, 10 (2): 123–165. ISSN 0360-0300. doi:10

Qt

小、位置或是字型大小,確保他們相對的排列和用戶界面整體仍然保有可用性。 Qt內建的布局管理類型有:QHBoxLayout、QVBoxLayout、QGridLayout和QFormLayout。這些類別繼承自QLayout,但QLayout非繼承自QWidget而是直接源於QObject。他們負責w

應用藝術

design) 为隐私设计(英语:Privacy by Design) 设计选择(英语:Design choice) 设计计算(英语:Design computing) 设计控制(英语:Design controls) 設計流程 设计领导(英语:Design leadership) 设计管理(英语:Design

設計語言

Palette) 字體與排版(Typography) 圖示與圖形風格(Iconography & Illustration) 空間與間距(Spacing & Layout) 元件庫(Component Library) 可重複使用的 UI 元件,如按鈕、輸入框、卡片、對話框等,通常會搭配程式碼實作(如 React/Vue