一直對瀏覽器的渲染機制都處於一種似懂非懂的狀態。看似沒什麼用的知識點但其實有很大做用。瞭解瀏覽器渲染機制能更好的解決性能問題。以及對本身的知識面也是一種提高。此次對瀏覽器渲染機制進行一次總結。css
渲染過程html
1.瀏覽器解析html標記後生成DOM樹瀏覽器
2.瀏覽器解析css標記後生成Cssom樹dom
3.將DOM樹與CSSOM樹合併生成渲染樹佈局
4.瀏覽器根據生成的渲染樹進行佈局,也就是肯定每一個節點的位置及大小性能
5.瀏覽器對頁面進行繪製code
DOM樹構建過程cdn
1.當咱們打開網頁時,瀏覽器開始請求對應html文件。不過在計算機底層此時爲0和1的字節碼。這一步中瀏覽器將這些字節數據解析成字符串。也就是咱們寫的代碼。htm
2.生成字符串後,瀏覽器根據特定詞法分析,將字符串轉化爲標記。這些標記構成代碼的最小單位。 例如:<div>111</div> <div>被解析爲一個div標籤,111被解析爲標籤內文本,</div>被解析爲div結束標籤
blog
3.標記解析完成後,瀏覽器將這些標記轉化爲節點(Node)。並根據節點間的關係生成dom樹
二進制字節碼=>字符串=>標記=>節點=>Dom樹
CSSOM樹構建過程
構建過程同DOM樹
二進制字節碼=>字符串=>標記=>節點=>Dom樹
生成渲染樹
生成渲染樹後根據渲染樹進行佈局。而後GPU將頁面繪製到屏幕中。
tip:display:none的節點不會繪製
爲何js操做dom耗性能
由於dom顯示隱藏,位置變化,大小變化致使瀏覽器從新渲染的過程稱爲重排,別名迴流。
由於dom外觀發生變化,好比顏色,背景色致使瀏覽器從新渲染的過程稱爲重繪。