瀏覽器的回流和重繪

2021-09-25 08:25:12 字數 590 閱讀 9444

重繪:

比如 background-color、font-size 等,這些屬性的改變不會影響頁面的結構布局,只會影響內容的變化,即這些屬性的改變將會引起瀏覽器的重繪

回流:

比如 padding、margin、height 等,改變這些屬性會影響頁面的結構布局,即改變這些屬性會引起瀏覽器的回流

為什麼咱們老是說,要盡量避免操作 dom 呢?

就是因為回流和重繪會消耗效能,如果老是操作 dom ,瀏覽器哪能受得了這個啊

不過也不要因為這個太過謹慎,現在的瀏覽器非常聰明,很多瀏覽器都有優化操作 dom 的行為,

實際上瀏覽器會維護乙個佇列,把所有的會引起回流、重繪的操作放入這個佇列中,等佇列中的操作到達一定數量,或者是到達了一定的時間,瀏覽器就會 flush 這個佇列,進行一次批處理。

這就會讓多次的回流、重繪變成一次回流重繪。

這樣就會節省很多效能。

ok完結,撒花 ?✨???

瀏覽器的重繪和回流

重繪 當元素樣式的改變不影響布局時,瀏覽器會使用重繪的方式來更新元素的變化,這種改變只會在ui層的重新畫素繪製,這種方式的對瀏覽器開銷比較小。常見的重繪操作有 改變元素顏色 改變元素背景色 more 回流 又名 重排 當元素的尺寸 結構或者觸發了某個屬性的改變,會導致瀏覽器重新渲染,這種操作會造成回...

瀏覽器的重繪和回流

我的部落格 這是我在之前面試中遇到的乙個問題,今天回想起來正好做乙個總結 這其實也是我遇到的一道面試題,與重繪和回流息息相關 使用者輸入 瀏覽器嘗試與伺服器建立連線 伺服器傳送永久重定向 瀏覽器跟蹤重定向位址 伺服器處理請求 伺服器傳送html響應 瀏覽器接收響應,開始解析 解析html檔案,處理並...

瀏覽器的回流和重繪

1 瀏覽器把獲取到的html 會解析成乙個dom樹,html中的每乙個元素都是dom樹的乙個節點,根節點也就是我們長用的document物件 2 當渲染樹中的一部分或者全部因為元素的尺寸 布局 隱藏等改變而需要重新構建的時候,這時候就會發生回流。每個頁面都至少發生一次回流,也就是頁面第一次載入的時候...