在理解回流與重繪之前,我們需要知道網頁呈現在我們面前之前都發生了什麼,
在頁面載入時,瀏覽器把獲取到的html**解析成1個dom樹,dom樹里包含了當前html裡所有的資訊,例如標籤,例如樣式,例如js邏輯。
瀏覽器會把所有樣式(使用者定義的css)解析成瀏覽器能識別並呈現出來的結構樣式體,而當dom樹和結構樣式體組合後就會構建成render樹,這個render樹類似於dom樹,但有一定的區別,
前者是能夠識別html中的標籤與內容,而後者能識別html中的css樣式,render tree中每個節點都有自己的樣式,而且render樹不包含隱藏的節點(比如display:none的節點,還有head節點),因為這些節點不會用於呈現,而且不會影響呈現的,所以就不會包含到 render樹中。
回到主題
這就更簡單了,當render樹中的樣式發生了變化,而這些變化只是簡單影響了了html中元素的表現,風格而不會影響到布局結構時,比如background-color背景色時,則被稱為重繪。
既然兩者都會發生變動,那麼他們之間有區別嗎?
有區別,而且還很大。
回流必將出現重繪,但重繪不一定會引起回流,
乙個簡單的例子,當你新增或刪除了dom元素,改變了元素的位置,元素的寬高,邊框,外邊距,內邊距與內容時,就會引起重繪,
與之相對的,當你僅僅只是新增了乙個類名樣式時(不包括display:none之類的會改變結構的樣式!),則只會引起重繪。
深入理解Flash Player重繪
深入理解flash player重繪 2010 03 14 published by youyee under 前端技術,技術分享 flash player 會以swf內容的幀頻速度來重新整理需要變化的內容,而這個重新整理的過程,我們通常稱為 重繪 redraw 相信即便是初級的菜鳥也知道,只要使用...
回流與重繪
首先是html渲染過程 解析html並構建dom樹和cssom樹,瀏覽器對html標記轉換成文件物件模型,css標記則轉換成css物件模型 cssom dom 樹包含了所有的 html 標籤,包括不展示的 head 節點和 display none 的節點,而 cssom 樹則會去掉瀏覽器不能識別的...
重繪與回流
很多面試都會問到的問題,那麼說起這兩個概念,首先先了解一下,瀏覽器對乙個頁面對渲染過程。1.使用者輸入url位址,瀏覽器根據網域名稱查詢ip位址 2.瀏覽器向伺服器傳送http請求 3.伺服器接受請求,根據請求返回相應的html 返回給瀏覽器 4.瀏覽器接受到伺服器的相應結果,對頁面做解析渲染 1 ...