1、什麼是迴流?html
迴流是會致使頁面從新渲染的一些元素,從而影響性能。dom
2、哪些因素會致使迴流?佈局
一、調整窗口的大小;性能
二、改變字體,若是用rem 設置了根目錄的字體大小,這樣就減小了迴流的次數;字體
三、增長或者移除樣式表;動畫
四、內容的變化,用戶在input中輸入了文字(這是不可避免的);htm
五、激活CSS的僞類;rem
六、操做class屬性;input
七、基本操做DOM(包括js中的domcument等);it
八、計算offsetWidth與offsetHeight 屬性,獲取元素在窗口中的位置;
九、在html代碼中直接設置style 屬性的值,這個下降了代碼的利用率,還影響性能。
3、如何避免迴流?
一、若是想設定元素的樣式,直接改變class名,而不是改變class中的某個特定的屬性,好比height,weight;
二、避免設置多項內聯樣式,就是說少使用style;
三、應用元素動畫的時候,使用屬性的position屬性的fixed值或absolute值;
四、避免使用table佈局;
五、儘可能在DOM樹的最末端改變class,改變子節點的樣式。