1.reflow(回流)
當(dāng)DOM的變化影響了元素的幾何信息(比如元素的尺寸吹散,位置),瀏覽器需要重新計算元素的幾何屬性八酒,將其安放在界面的正確位置空民,這個過程叫做回流⌒呙裕回流也叫重排界轩。
引起回流的方式:
1.頁面初始化時,最消耗性能的一次回流衔瓮;
2.刪除或者添加可見的元素時浊猾;
3.元素的位置發(fā)生改變時;
4.元素的大小改變時(例如改變了元素的內(nèi)外邊距热鞍,寬高与殃,邊框大小)碍现;
5.元素的內(nèi)容發(fā)生變化(字體幅疼、文字、圖片更換)昼接;
6.改變?yōu)g覽器窗口尺寸(例如 resize 事件發(fā)生時)爽篷;
7.激活 CSS 偽類(例如 :hover);
8.設(shè)置 style 屬性的值慢睡,因為通過設(shè)置 style 屬性改變節(jié)點樣式的話逐工,每一次設(shè)置都會觸發(fā)一次回流铡溪;
9.查詢某些屬性或調(diào)用某些計算方法:offsetWidth、offsetHeight 等泪喊,會觸發(fā)回流棕硫,為了 “即時性” 和 “準(zhǔn)確性” 。
2.重繪 (repaint)
當(dāng)一個元素的外觀發(fā)生變化袒啼,但沒有改變布局哈扮,重新繪制元素外的過程,叫做重繪蚓再。
引起重繪的方式
1.可見性(visibility)和透明度(opacity)的改變滑肉;
2.顏色的改變;
3.背景的改變摘仅;
4.陰影靶庙、輪廓的改變;
5.文本方向(text-decoration)的改變等娃属。