瀏覽器內核渲染引擎工做流程

瀏覽器解析流程

一、加載
  • 資源加載器開啓http線程,獲取html頁面。
  • 獲取頁面以後,交由html解釋器解析稱dom節點,並構建成dom樹。
  • 在構建dom樹的時候,若是遇到script標籤,則調用javascript引擎進行解析。
  • 在構建dom樹的時候,若是遇到css,圖片,音頻,則調用資源加載器進行資源的下載
  • 注:這裏面script文件的下載是阻塞dom樹生成的,而css,圖片,音頻文件的下載是和dom樹的建立並行的。
二、渲染
  • 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樹和繪圖上下文。
  • 根據繪圖上下文調用操做系統的繪製工具繪製網頁。
相關文章
相關標籤/搜索