例如,如果我這樣做在requestAnimationFrame內部什麼不會導致重繪/迴流?
requestAnimationFrame(function() {
el.appendChild(otherEl)
el.appendChild(anotherEl)
anotherEl.removeChild(someOtherEl)
anotherEl.appendChild(yetAnotherEl)
})
這是否會導致(同步?)重繪/期間,當我們試圖避免引起重繪/迴流焊時發生迴流,從而排尿的目的?
或者,瀏覽器是否會變得聰明,並等待該框架完成後(在所有這些DOM操作完成之後)才能最終繪製生成的DOM結構?
什麼是可以導致重繪/迴流的所有事情,並且我們希望避免在requestAnimationFrame內執行操作?
this html5rocks article中的樣式列表只提及當我們修改時會引起重繪/迴流的樣式。我也很想知道哪些JavaScript屬性(以及它們在哪個對象上)在訪問時會導致迴流(即發生迴流以便能夠獲得某個屬性的值)。
你是否按照每幀的方式做這件事,即定期追加兒童? –
@TahirAhmed不一定。這可能是每隔幾秒鐘,甚至可能不到一秒鐘。雖然,我不想對它施加限制。用例可以是任何東西(例如,在每一幀添加刪除元素以產生某種快速閃爍的效果)。 – trusktr
_adding每個frame_刪除元素_我認爲是太快,你會發現任何可見的東西,因爲瀏覽器往往會呈現每秒* 60 *幀。 –