重繪和重排以及如何優化

2021-10-20 15:14:51 字數 859 閱讀 8982

重繪

當盒子的位置、大小以及其他屬性,例如顏色、字型大小等都確定下來之後,瀏覽器便把這些原色都按照各自的特性繪製一遍,將內容呈現在頁面上。

重繪是指乙個元素外觀的改變所觸發的瀏覽器行為,瀏覽器會根據元素的新屬性重新繪製,使元素呈現新的外觀。

當盒子改變 顏色的時候會引起 重繪

重排

當盒子改變自己的位置大小時 隱藏改變 display;none 會引起重排

觸發重排的條件:任何頁面布局和幾何屬性的改變都會觸發重排,

1、頁面渲染初始化;(無法避免)

2、新增或刪除可見的dom元素;

3、元素位置的改變,或者使用動畫;

4、元素尺寸的改變―—大小,外邊距,邊框;

5、瀏覽器視窗尺寸的變化(resize事件發生時);

6、填充內容的改變,比如文字的改變或大小改變而引起的計算值寬度和高度的改變;

7、讀取某些元素屬性:(offsetleft/top/height/width,clienttop/left/width/height,scrolltop/left/width/height,width/height, getcomputedstyle(), currentstyle(ie) )

重繪重排的代價:耗時,導致瀏覽器卡慢。卡

優化

1.直接改變樣式名稱 classname 不乙個個修改屬性的引數

2. 新增元素時 一起建立 最後一起新增

3. 將需要多次重排的元素,position屬性設為absolute或fixed,元素脫離了文件流,它的變化不會影響到其他元素;

css 頁面重繪和回流 重排 以及優化

1.瀏覽器把獲取到的html 解析成1個dom樹,html中的每個tag都是dom樹中的1個節點,根節點就是我們常用的document物件。dom樹里包含了所有html標籤,包括display none隱藏,還有用js動態新增的元素等。2.瀏覽器把所有樣式 使用者定義的css和使用者 解析成樣式結構...

css 頁面重繪和回流 重排 以及優化

一 html頁面的呈現流程 1.瀏覽器把獲取到的html 解析成1個dom樹,html中的每個tag都是dom樹中的1個節點,根節點就是我們常用的document物件。dom樹里包含了所有html標籤,包括display none隱藏,還有用js動態新增的元素等。2.瀏覽器把所有樣式 使用者定義的c...

重繪 重排 專案優化

1.構建dom樹 parse 渲染引擎解析html文件,首先將標籤轉換成dom樹中的dom node 包括js生成的標籤 生成內容樹 content tree dom tree 2.構建渲染樹 construct 解析對應的css樣式檔案資訊 包括js生成的樣式和外部css檔案 而這些檔案資訊以及h...