網(wǎng)頁(yè)渲染的基本過程。瀏覽器的主要作用是將用戶輸入的網(wǎng)站“URL”轉(zhuǎn)變成可視化的圖像。這其中包含兩個(gè)過程,一是網(wǎng)頁(yè)加載過程,從“URL”到構(gòu)建DOM(Document Object Model,文檔對(duì)象模型)樹;二是網(wǎng)頁(yè)渲染過程,從DOM樹到生成可視化圖像,即我們看到的頁(yè)面效果。
網(wǎng)頁(yè)渲染的過程其實(shí)就是將URL對(duì)應(yīng)的各種資源,通過瀏覽器渲染引擎的解析,輸出可視化的圖像。根據(jù)數(shù)據(jù)的流向,瀏覽器的渲染過程可以分成三個(gè)階段(以WebKit內(nèi)核瀏覽器為例):從網(wǎng)頁(yè)的URL到構(gòu)建完DOM樹;從DOM樹到構(gòu)建完WebKit的繪圖上下文;從繪圖上下文到生成最終圖像。
瀏覽器渲染引擎主要包括HTML解釋器、CSS解釋器、布局和JavaScript(以下簡(jiǎn)稱JS)解釋器。其中,HTML解釋器主要作用是將HTML文本解釋成DOM樹;CSS解釋器作用是為DOM中各元素對(duì)象計(jì)算出樣式信息;布局則是指在DOM樹創(chuàng)建之后形成一個(gè)內(nèi)部表示模型,這個(gè)模型將HTML元素與CSS樣式結(jié)合起來,計(jì)算出元素的具體大小和位置等布局信息;JS解釋器能夠解釋JS代碼并通過DOM接口和CSSOM接口來修改網(wǎng)頁(yè)內(nèi)容和樣式信息,從而改變渲染的結(jié)果。隨著JS解釋器越來越重要,JS解釋器逐漸脫離出來成為獨(dú)立的JS引擎。