瀏覽器核心渲染引擎工作流程

水手發表於2019-03-14

瀏覽器解析流程

1、載入
  • 資源載入器開啟http執行緒,獲取html頁面。
  • 獲取頁面之後,交由html直譯器解析稱dom節點,並構建成dom樹。
  • 在構建dom樹的時候,如果遇到script標籤,則呼叫javascript引擎進行解析。
  • 在構建dom樹的時候,如果遇到css,圖片,音訊,則呼叫資源載入器進行資源的下載
  • 注:這裡面script檔案的下載是阻塞dom樹生成的,而css,圖片,音訊檔案的下載是和dom樹的建立並行的。
2、渲染
  • css檔案下載之後,呼叫css直譯器解釋css檔案,並依賴dom樹生成renderObject樹*
  • renderObject樹再根據網頁的層次結構,構建renderLayer樹和繪圖上下文
  • 最後由繪圖上下文繪製最終的影象。
使用者輸入www.baidu.com過程
  • 根據url進行快取查詢IP地址,如果快取沒有,尋找DNS伺服器。最終找到url對應的IP地址。
  • 呼叫資源管理器,開啟http執行緒,http GET baidu的網頁。傳輸層三次握手。
  • 獲取網頁之後,交友html直譯器解析成DOM樹
  • 遇到了css資源和圖片資源,非同步下載
  • 遇到script標籤,阻塞下載並解析
  • 發現js程式碼改變了dom結構,引起dom樹的改變
  • dom樹構建完畢,開始呼叫css解析器解析css檔案,生成renderobject樹
  • 根據層次結構生成renderlayer樹和繪圖上下文。
  • 根據繪圖上下文呼叫作業系統的繪製工具繪製網頁。

相關文章