瀏覽器渲染html頁面的流程基本上分為四步:
1、計算CSS樣式
2、構(gòu)建Render Tree
3、Layout 定位坐標(biāo)和大小
4、正式開始渲染
那么,首先要提出兩個重要概念,一個是Relfow,一個是Repaint。
重繪:當(dāng)我們對DOM的修改導(dǎo)致了樣式變化,也就是說DOM的CSS樣式發(fā)生改變,但是幾何屬性并沒有改變,比如只是修改了DOM的顏色、背景色時,瀏覽器不需要重新計算元素的幾何屬性,直接為該元素繪制新的樣式。
回流:當(dāng)我們對DOM的修改改變了DOM的幾何尺寸,比如修改了元素的寬、高或隱藏元素等,那么瀏覽器需要重新計算元素的幾何屬性;因為該元素相鄰元素的幾何屬性和位置都會受到影響。然后再將計算的結(jié)果重新繪制出來,這個過程稱為回流。
我們知道,網(wǎng)頁生成的時候,至少會渲染一次。刷新和回退都會不斷的重新渲染,每次的重新渲染必然會引發(fā)回流+重繪,有時候只是重繪。
回流必然引發(fā)重繪,但是重繪則不一定會引起回流。
如果重回和回流在設(shè)置節(jié)點時頻發(fā)出現(xiàn),那么很大程度上影響頁面的性能?;亓魉璧某杀颈戎乩L高的多,改變父節(jié)點里的子節(jié)點,會導(dǎo)致父節(jié)點的一系列回流。
常見引起回流的屬性和方法
1、添加或者刪除可見的DOM元素;
2、元素尺寸的改變,margin、padding、border、width、height
3、內(nèi)容變化,比如用戶在input框中輸入文字
4、瀏覽器窗口尺寸的改變——resize事件發(fā)生時
5、計算offsetWidth 或者offsetLeft屬性
6、設(shè)置style的屬性值
常見引起重繪的屬性和方法
color、border-style、visibility、background、background-image、background-size、background-position、background-repeat、border-radius、box-shadow、outline、outline-color、outline-style、outline-width
如何減少回流、重繪
使用transform代替top、使用visibility代替display:none,因為前者會引起重繪而后者會引起回流。
不要把DOM節(jié)點作為循環(huán)變量使用。
不要使用table布局,table基本都是回流。
動畫實現(xiàn)的速度越快,回流次數(shù)越多。
CSS選擇符從右向左匹配查找,避免節(jié)點層級過多。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
新聞名稱:瀏覽器渲染的回流和重繪-創(chuàng)新互聯(lián)
URL標(biāo)題:http://www.rwnh.cn/article0/csjgio.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護、App開發(fā)、云服務(wù)器、定制網(wǎng)站、域名注冊、靜態(tài)網(wǎng)站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容