重排:部分渲染樹(shù)(或者整個(gè)渲染樹(shù))需要重新分析并且節(jié)點(diǎn)尺寸需要重新計(jì)算,表現(xiàn)為重新生成布局,重新排列元素。
重繪:由于節(jié)點(diǎn)的幾何屬性發(fā)生改變或者由于樣式發(fā)生改變,例如改變?cè)乇尘吧珪r(shí),屏幕上的部分內(nèi)容需要更新,表現(xiàn)為某些元素的外觀被改變。
單單改變?cè)氐耐庥^,肯定不會(huì)引起網(wǎng)頁(yè)重新生成布局,但當(dāng)瀏覽器完成重排之后,將會(huì)重新繪制受到此次重排影響的部分。
重排和重繪代價(jià)是高昂的,它們會(huì)破壞用戶體驗(yàn),并且讓UI展示非常遲緩,而相比之下重排的性能影響更大,在兩者無(wú)法避免的情況下,一般我們寧可選擇代價(jià)更小的重繪。
『重繪』不一定會(huì)出現(xiàn)『重排』,『重排』必然會(huì)出現(xiàn)『重繪』。