小編給大家分享一下前端瀏覽器渲染的5大步驟分別是什么,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
瀏覽器渲染一共有五步
處理 HTML 并構(gòu)建 DOM 樹
處理 CSS構(gòu)建 CSSOM 樹
將 DOM 與 CSSOM 合并成一個(gè)渲染樹
根據(jù)渲染樹來布局,計(jì)算每個(gè)節(jié)點(diǎn)的位置
調(diào)用 GPU 繪制,合成圖層,顯示在屏幕上
第四步和第五步是最耗時(shí)的部分,這兩步合起來,就是我們通常所說的渲染
重繪和回流是渲染步驟中的一小節(jié),但是這兩個(gè)步驟對于性能影響很大
重繪(Repaint)
重繪是當(dāng)節(jié)點(diǎn)需要更改外觀而不會(huì)影響布局的,比如改變 color 就叫稱為重繪。
常見的引起重繪的屬性:
color border-style visibility background text-decoration outline box-shadow
回流(Reflow)
回流是布局或者幾何屬性需要改變就稱為回流。
回流必定會(huì)發(fā)生重繪,重繪不一定會(huì)引發(fā)回流?;亓魉璧某杀颈戎乩L高的多,改變深層次的節(jié)點(diǎn)很可能導(dǎo)致父節(jié)點(diǎn)的一系列回流
常見引起回流屬性和方法:
添加或者刪除可見的DOM元素;
元素尺寸改變——邊距、填充、邊框、寬度和高度
內(nèi)容變化,比如用戶在input框中輸入文字
瀏覽器窗口尺寸改變——resize事件發(fā)生時(shí)
計(jì)算 offsetWidth 和 offsetHeight 屬性
設(shè)置 style 屬性的值
全局范圍:從根節(jié)點(diǎn)html開始對整個(gè)渲染樹進(jìn)行重新布局。
局部范圍:對渲染樹的某部分或某一個(gè)渲染對象進(jìn)行重新布局
以上是“前端瀏覽器渲染的5大步驟分別是什么”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)網(wǎng)站制作公司行業(yè)資訊頻道!