1.重排和重繪的概念
- 重排: 部分渲染樹(或者整個渲染樹)需要重新分析并且節(jié)點尺寸需要重新計算馍乙。這被稱為重排管钳,注意這里至少會有一次重排——初始化頁面布局。
- 重繪: 由于節(jié)點的幾何屬性發(fā)生改變或者由于樣式發(fā)生改變,例如改變元素背景色時侣灶,屏幕上的部分內(nèi)容需要更新。這樣的更新被稱為重繪缕碎。
2.什么情況下會觸發(fā)重排和重繪:
- 添加褥影、刪除、更新DOM節(jié)點阎曹;
- 通過display:none隱藏一個DOM節(jié)點,觸發(fā)重排和重繪煞檩;
- 通過visibility:hidden隱藏一個DOM節(jié)點处嫌,只觸發(fā)重繪,因為沒有發(fā)生幾何變化斟湃;
- 移動或者給頁面中的DOM節(jié)點添加動畫熏迹;
- 添加一個樣式表,調(diào)整樣式屬性凝赛;
- 用戶行為注暗,例如調(diào)整窗口大小,改變字號墓猎,或者滾動捆昏;