1.重繪和重排
- 重排
當DOM變化影響了元素的幾何屬性,瀏覽器需要重新計算元素的幾何屬性,其他元素的幾何屬性和位置也會受到影響,重新構(gòu)造渲染樹,這就是重排 - 重繪
完成重排后,瀏覽器會重新繪制受影響的部分到屏幕,例如改變一個元素的背景色,不會影響元素的寬和高,這種情況會發(fā)生重繪
2.重排發(fā)生的場景
- 添加和刪除可見DOM元素
- 元素位置改變
- 元素內(nèi)容改變,如小文本被圖片代替
- 頁面渲染初始化
- 瀏覽器窗口尺寸改變
3.渲染樹變化的排隊和刷新
當對此改變元素的樣式時,每次改變不會都引起重排和重繪,但是瀏覽器會將三次改變保存到隊列中,并批量執(zhí)行來優(yōu)化重排過程,一次完成。
但是,如果通過offset,client,scroll,getComputedStyle等獲取布局信息的操作會導(dǎo)致隊列刷新,盡量不要在布局改變時做查詢