瀏覽器內核渲染引擎工做流程
瀏覽器解析流程
一、加載
- 資源加載器開啓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樹和繪圖上下文。
- 根據繪圖上下文調用操做系統的繪製工具繪製網頁。
歡迎關注本站公眾號,獲取更多信息