高級之路篇一:從瀏覽器渲染開始

前言:瞭解並理解瀏覽器的渲染原理流程,對我們的性能優化有着至關重要的作用。

至於渲染引擎,我們大可忽略,知道這個概念就行。

流程如下:

1、下載html文本文件,生成dom樹。

2、下載css文件,解析CSS生成CSSOM規則樹。

3、將DOM樹與CSSOM規則樹合併在一起生成渲染樹。

4、遍歷渲染樹開始佈局,計算每個節點的位置大小信息。

5、將渲染樹每個節點 逐個 繪製到屏幕。

 

注意點:

dom樹生成過程中需注意

1、下載html文檔同時可能會並行下載css文件,js文件。

2、DOM樹的生成過程中可能會被CSS和JS的加載執行阻塞。

3、當瀏覽器遇到一個 script 標記時,DOM 構建將暫停,直至腳本完成執行,然後繼續構建DOM。

4、如果JavaScript腳本還操作了CSSOM,而正好這個CSSOM還沒有下載和構建,瀏覽器甚至會延遲腳本執行和構建DOM,直至完成其CSSOM的下載和構建。

所以建議大家:

1、CSS 優先、JS置後,且JavaScript 應儘量少影響 DOM 的構建。

 

CSSOM規則樹生成過程中注意:

1、就近原則,優先使用class或id選擇器,少用後代選擇器,解析是需要代價的。

2、提高樣式的複用性。

 

構建渲染樹需注意:

通過DOM樹和CSS規則樹我們便可以構建渲染樹。瀏覽器會先從DOM樹的根節點開始遍歷每個可見節點。對每個可見節點,找到其適配的CSS樣式規則並應用。

 

後續js操作或者其他引起的重排和重繪

重繪(replaint):屏幕的一部分重畫,不影響整體佈局,比如某個CSS的背景色變了,但元素的幾何尺寸和位置不變。

重排(reflow):意味着元件的幾何尺寸變了,我們需要重新驗證並計算渲染樹。是渲染樹的一部分或全部發生了變化。這就是Reflow,或是Layout。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章