網(wǎng)站開發(fā)關(guān)于瀏覽器渲染過程講解

2024-01-24    分類: 網(wǎng)站建設(shè)

我們可能都知道瀏覽器含有一個渲染引擎,用來渲染窗口所展示的內(nèi)容。默認(rèn)情況下,渲染引擎可以顯示html、xml文檔及圖片,它也可以借助插件(一種瀏覽器擴(kuò)展)顯示其他類型數(shù)據(jù),例如使用PDF閱讀器插件,用于顯示PDF格式。但是其具體的渲染原理和流程估計也有很多人都不知道或者不清楚吧。這些天研究了一下瀏覽器的渲染原理,有了些心得,在這里跟大家分享一下,這里只討論渲染引擎最主要的用途——顯示應(yīng)用了CSS之后的html及圖片。

1.解析HTML,構(gòu)建DOM樹(這里遇到外鏈,此時會發(fā)起請求)

2.解析CSS,生成CSS規(guī)則樹

3.合并DOM樹和CSS規(guī)則,生成render樹

4.布局render樹(Layout/reflow),負(fù)責(zé)各元素尺寸、位置的計算

5.繪制render樹(paint),繪制頁面像素信息

6.瀏覽器會將各層的信息發(fā)送給GPU,GPU將各層合成(composite),顯示在屏幕上。這一點(diǎn)在網(wǎng)站開發(fā)中十分重要。

1.構(gòu)建DOM樹

?無論是DOM還是CSSOM,都是要經(jīng)過 bytes→characters→tokens→nodes→objectmodel這個過程。

DOM樹構(gòu)建過程:當(dāng)前節(jié)點(diǎn)的所有子節(jié)點(diǎn)都構(gòu)建好后才會去構(gòu)建當(dāng)前節(jié)點(diǎn)的下一個兄弟節(jié)點(diǎn)。

2.構(gòu)建CSSOM樹

上述也提到了CSSOM的構(gòu)建過程,也是樹的結(jié)構(gòu),在最終計算各個節(jié)點(diǎn)的樣式時,瀏覽器都會先從該節(jié)點(diǎn)的普遍屬性(比如body里設(shè)置的全局樣式)開始,再去應(yīng)用該節(jié)點(diǎn)的具體屬性。還有要注意的是,每個瀏覽器都有自己默認(rèn)的樣式表,因此很多時候這棵CSSOM樹只是對這張默認(rèn)樣式表的部分替換。

3.生成render樹

DOM樹和CSSOM樹合并生成render樹

簡單描述這個過程:

DOM樹從根節(jié)點(diǎn)開始遍歷可見節(jié)點(diǎn),這里之所以強(qiáng)調(diào)了“可見”,是因為如果遇到設(shè)置了類似 display:none;的不可見節(jié)點(diǎn),在render過程中是會被跳過的(但 visibility:hidden;opacity:0這種仍舊占據(jù)空間的節(jié)點(diǎn)不會被跳過render),保存各個節(jié)點(diǎn)的樣式信息及其余節(jié)點(diǎn)的從屬關(guān)系。

4.Layout 布局

有了各個節(jié)點(diǎn)的樣式信息和屬性,但不知道各個節(jié)點(diǎn)的確切位置和大小,所以要通過布局將樣式信息和屬性轉(zhuǎn)換為實際可視窗口的相對大小和位置。

5.Paint 繪制

對于網(wǎng)站建設(shè)而言,Paint 繪制可以說是會給人一種萬事俱備的感覺,最后只要將確定好位置大小的各節(jié)點(diǎn),通過GPU渲染到屏幕的實際像素。

希望以上內(nèi)容對您有所幫,如果大家對這些內(nèi)容還有想要了解的可以隨時咨詢我們,也可以關(guān)注創(chuàng)新互聯(lián)的官方公眾號,里邊會有更多的相關(guān)內(nèi)容解決您的問題。

當(dāng)前標(biāo)題:網(wǎng)站開發(fā)關(guān)于瀏覽器渲染過程講解
本文網(wǎng)址:http://m.kartarina.com/news1/315151.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供手機(jī)網(wǎng)站建設(shè)移動網(wǎng)站建設(shè)企業(yè)網(wǎng)站制作建站公司網(wǎng)站設(shè)計公司關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
主站蜘蛛池模板: 久久久久无码精品国产h动漫| 人妻系列AV无码专区| 欧洲Av无码放荡人妇网站| 无码人妻精品一区二区蜜桃网站 | 精品多人p群无码| 国产AV无码专区亚洲AV蜜芽| 国产成人精品无码专区| 无码日韩人妻精品久久蜜桃| 亚洲中文字幕无码专区| 无码日本电影一区二区网站| 亚洲人成网亚洲欧洲无码久久| 好了av第四综合无码久久| 亚洲AV综合色区无码一区 | 西西大胆无码视频免费| 亚洲Av无码专区国产乱码DVD | 国产精品午夜无码av体验区| 人妻精品久久无码专区精东影业 | 精品亚洲成A人无码成A在线观看| 人妻丝袜无码专区视频网站| 亚洲久热无码av中文字幕| 亚洲AV无码一区二区乱孑伦AS| 无码国产亚洲日韩国精品视频一区二区三区 | 国产av无码专区亚洲av果冻传媒| 无码一区二区三区AV免费| 久久无码人妻一区二区三区| 久久久亚洲精品无码| 最新无码A∨在线观看| 精品人体无码一区二区三区| 亚洲午夜福利精品无码| 国产强被迫伦姧在线观看无码| 精品人妻系列无码人妻漫画| 亚洲精品9999久久久久无码| 亚洲一区无码中文字幕乱码| 欧洲精品久久久av无码电影 | 国产午夜鲁丝片AV无码免费| 国产成人无码AV在线播放无广告| 亚洲中文字幕久久精品无码A| 亚洲人片在线观看天堂无码 | 国产成年无码AV片在线韩国| 国产亚洲?V无码?V男人的天堂 | 国产成人无码AV片在线观看|