瀏覽器渲染頁面過程簡單介紹
呈現在我們面前的頁面需要經過瀏覽器的宣傳,下面就介紹一下瀏覽器是如何渲染頁面的。
一.佈局:
當渲染物件被建立並新增到樹中,是沒有位置和大小的,計算這些值的過程稱為layout或reflow。
佈局是一個遞迴過程,由根渲染物件開始,對應html文件元素,佈局繼續遞迴的通過一些或所有的frame層級,為每個需要幾何資訊的渲染物件進行計算。跟渲染物件位置是0,0。所有渲染物件都有一個layout或reflow方法,每個渲染物件呼叫需要佈局的children的layout方法。
瀏覽器會對發生變化的呈現器以及其子代標註為"dirty",表示需要進行layout
標記分為兩種:"dirty"和"children are dirty"。
“children are dirty”表示儘管呈現器本身沒有變化,但它至少有一個子代需要佈局。
這裡需要說明一下重排reflow和重繪repaint。
二.重排reflow:
當改變影響到文字內容、結構或元素位置時,就會發生重排。
通常有以下事件觸發:
(1).網頁初始化時
(2).DOM操作(元素新增、刪除、修改、元素順序變化)
(3).內容變化,包括表單域內文字改變
(4).CSS屬性的計算或改變
(5).新增或刪除樣式表
(6).更改“類”屬性
(7).瀏覽器視窗的縮放、滾動等
(8).偽類啟用(例如:hover懸停)
三.重繪repaint:
改變不會影響元素的位置及大小的樣式時,則會觸發重繪。換句話說,元素改變外觀時會觸發這個行為,不包括修改元素的幾何屬性。例如background,visibility。
四.非同步layout和同步layout:
非同步layout,簡單來說,就是指瀏覽器為了儘可能減少reflow和repaint的操作,而將這些操作積攢起來,再統一做一次reflow。
什麼時候會產生同步layout呢
例如resize視窗、改變頁面預設字型時,或者是指令碼作出以下請求:
layout過程:
(1).parent渲染物件決定寬度。
(2).parent渲染物件讀取children,設定其x,y;在需要時【標記為dirty或全域性layout等】呼叫child渲染物件的layout,計算child高度;parent使用child的累積高度,以及margin和padding的高度來設定自己的高度;最後將dirty標誌設定為false。
繪製:
和佈局一樣,繪製也可以是全域性的——繪製完整的樹——或增量的。在增量的繪製過程中,一些渲染物件以不影響整棵樹的方式改變,改變的渲染物件使其在螢幕上的矩形區域失效,這將導致作業系統將其看作dirty區域,併產生一個paint事件,作業系統很巧妙的處理這個過程,並將多個區域合併為一個。Chrome中,這個過程更復雜些,因為渲染物件在不同的程式中,而不是在主程式中。Chrome在一定程度上模擬作業系統的行為,表現為監聽事件並派發訊息給渲染根,在樹中查詢到相關的渲染物件,重繪這個物件(往往還包括它的children)。
繪製順序:
一個塊渲染物件的堆疊順序是:
(1).背景色
(2).背景圖
(3).border
(4).children
(5).outline
相關文章
- 瀏覽器將html程式碼渲染成頁面流程簡單介紹瀏覽器HTML
- 瀏覽器渲染網頁的過程瀏覽器網頁
- 瀏覽器頁面載入過程瀏覽器
- WebKit 瀏覽器內幕之 瀏覽器特性/網頁渲染過程WebKit瀏覽器網頁
- 瀏覽器頁面渲染機制瀏覽器
- 一張圖瞭解瀏覽器渲染頁面的過程瀏覽器
- 瀏覽器的渲染原理簡介瀏覽器
- 瀏覽器的渲染:過程與原理瀏覽器
- 瀏覽器核心的種類簡單介紹瀏覽器
- 瀏覽器渲染過程與效能優化瀏覽器優化
- 頁面渲染:過程分析
- 瀏覽器渲染簡述瀏覽器
- 瀏覽器頁面資源載入過程與優化瀏覽器優化
- Chrome 瀏覽器頁面渲染工作原理淺析Chrome瀏覽器
- 一篇瀏覽器頁面渲染加速的文章瀏覽器
- 瀏覽器渲染過程與原理淺析(一)瀏覽器
- javascript for in語句瀏覽器相容問題簡單介紹JavaScript瀏覽器
- getBoundingClientRect()瀏覽器相容問題簡單介紹GCclient瀏覽器
- js獲取瀏覽器相關資訊簡單介紹JS瀏覽器
- 瀏覽器URL從輸入到頁面繪製完成過程瀏覽器
- 你不知道的瀏覽器頁面渲染機制瀏覽器
- 實現微信內建瀏覽器線上支付簡單介紹瀏覽器
- 相容各個瀏覽器的scrolltop屬性簡單介紹瀏覽器
- 瀏覽器核心介紹瀏覽器
- 從一條語句說瀏覽器頁面渲染機制瀏覽器
- 專用IE瀏覽器的if判斷語句簡單介紹瀏覽器
- 使用谷歌瀏覽器進行斷點除錯簡單介紹谷歌瀏覽器斷點除錯
- 瀏覽器渲染流程&Composite(渲染層合併)簡單總結瀏覽器
- 瀏覽器渲染頁面的主體流程瀏覽器
- 利用css設定列印頁面簡單介紹CSS
- 從輸入地址到頁面渲染,瀏覽器都做了什麼瀏覽器
- 瀏覽器渲染瀏覽器
- 瀏覽器fuzz框架介紹瀏覽器框架
- 【網路】瀏覽器輸入URL到展示頁面全過程(含網際網路協議及HTTPS簡介)瀏覽器協議HTTP
- 用if條件語句來實現瀏覽器相容簡單介紹瀏覽器
- 瀏覽器彈出小頁面瀏覽器
- 谷歌瀏覽器模擬進行移動端除錯簡單介紹谷歌瀏覽器除錯
- 瀏覽器渲染流程瀏覽器