DOM渲染及過程


1.什么是DOM渲染?

DOM渲染指的是對於瀏覽器中展現給用戶的DOM文檔的生成的過程。

2.DOM渲染的演化過程,大致可以分為可以分為三個階段:
1.解析HTML文件,創建DOM樹

自上而下,遇到任何樣式(link、style)與腳本(script)都會阻塞(外部樣式不阻塞后續外部腳本的加載)。

2.解析CSS

優先級:瀏覽器默認設置<用戶設置<外部樣式<內聯樣式<HTML中的style樣式;
特定級:id數100+類或偽類數10+tag名稱*1

3.將CSS與DOM合並,構建渲染樹(renderingtree)

DOM樹與HTML一一對應,渲染樹會忽略諸如head、display:none的元素

4.布局和繪制,重繪(repaint)和重排(reflow)

reflow(重排):根據 Reader Tree 進行節點信息計算(layout),若渲染樹的一部分更新,且尺寸變化,就會發生重排;
repaint(重繪):根據計算好的信息繪制整個頁面(Painting),部分節點需要更新,但不改變其他集合形狀。如改變某個元素的顏色,就會發生重繪。
5.理論上,每一次的dom更改或者css幾何屬性更改,都會引起一次瀏覽器的重繪/重排過程,而如果是css非幾何屬性更改,則只會引起重繪過程,所以重排一定引起重繪,重繪不一定引起重排
6.因為有時JS也參與DOM Tree 的構建,因而我們會先執行js再開始構建渲染樹,js腳本會阻塞Reader Tree的構建,即阻塞了頁面的渲染


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM