瀏覽器的渲染過程

1 用戶輸入url地址,DNS(域名解析系統(tǒng))服務(wù)器根據(jù)輸入的域名查找對(duì)應(yīng) IP
2 瀏覽器向該IP地址服務(wù)器發(fā)送http請(qǐng)求,如果服務(wù)器段返回以301之類的重定向,瀏覽器根據(jù)相應(yīng)頭中的location再次發(fā)送請(qǐng)求
3 瀏覽器加載 HTML 文件及文件內(nèi)包含的外部引用文件(CSS、JS)及圖片,多媒體等資源。
4 據(jù)請(qǐng)求回來的 HTML 文件,渲染引擎開始從上到下解析HTML文檔,首先將標(biāo)簽轉(zhuǎn)換成DOM樹中的DOM節(jié)點(diǎn)(包括js生成的標(biāo)簽),也叫內(nèi)容樹(Content Tree/DOM Tree),此時(shí)解析過程中碰見了外部引用的 CSS 文件,去服務(wù)器請(qǐng)求回 CSS 文件,構(gòu)建 CSSOM (CSS Object Model)樹,加載解析樣式生成 CSSOM 樹。CSSOM 的解析過程與 DOM 的解析過程是并行的。
5 此時(shí)繼續(xù)解析 HTML,又碰見了外部引用的 JS 文件,去服務(wù)器請(qǐng)求回 JS 文件,加載并執(zhí)行 JS 代碼(包括內(nèi)聯(lián)代碼或外聯(lián) JS 文件)
6 此時(shí)在解析 HTML 過程中發(fā)現(xiàn)一個(gè)標(biāo)簽內(nèi)引用了一張關(guān)聯(lián)圖片,去服務(wù)器請(qǐng)求回這張圖片,瀏覽器解析器不會(huì)等待圖片下載完,而是繼續(xù)渲染后面的代碼。
7 此時(shí) HTML 代碼和 CSS 代碼已經(jīng)形成 DOM 樹和 CSSOM 樹,并生成渲染樹(render tree),渲染樹按順序展示在屏幕上的一系列矩形,這些矩形帶有字體,顏色和尺寸等視覺屬性。
8 布局(layout):從根節(jié)點(diǎn)遞歸調(diào)用,計(jì)算每一個(gè)元素的大小、位置等,給出每個(gè)節(jié)點(diǎn)所應(yīng)該在屏幕上出現(xiàn)的精確坐標(biāo);
9 繪制(painting):遍歷渲染樹繪制所有節(jié)點(diǎn),為每一個(gè)節(jié)點(diǎn)適用對(duì)應(yīng)的樣式,這一過程是通過 UI 后端模塊完成。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容