簡述網頁的渲染機制

瀏覽器的主要功能

瀏覽器的主要功能就是向服務器發(fā)出請求,在瀏覽器窗口中展示您選擇的網絡資源。這里所說的資源一般是指 HTML 文檔,也可以是 PDF、圖片或其他的類型。資源的位置由用戶使用 URI(統(tǒng)一資源標示符)指定。

瀏覽器的主要組件

img
  1. 用戶界面 - 包括地址欄、前進/后退按鈕、書簽菜單等。除了瀏覽器主窗口顯示的您請求的頁面外,其他顯示的各個部分都屬于用戶界面。
  2. 瀏覽器引擎 - 在用戶界面和呈現(xiàn)引擎之間傳送指令。
  3. 呈現(xiàn)引擎 - 負責顯示請求的內容。如果請求的內容是 HTML,它就負責解析 HTML 和 CSS 內容,并將解析后的內容顯示在屏幕上。
  4. 網絡 - 用于網絡調用,比如 HTTP 請求。其接口與平臺無關,并為所有平臺提供底層實現(xiàn)。
  5. 用戶界面后端 - 用于繪制基本的窗口小部件,比如組合框和窗口。其公開了與平臺無關的通用接口,而在底層使用操作系統(tǒng)的用戶界面方法。
  6. JavaScript 解釋器。用于解析和執(zhí)行 JavaScript 代碼。
  7. 數(shù)據(jù)存儲。這是持久層。瀏覽器需要在硬盤上保存各種數(shù)據(jù),例如 Cookie。新的 HTML 規(guī)范 (HTML5) 定義了“網絡數(shù)據(jù)庫”,這是一個完整(但是輕便)的瀏覽器內數(shù)據(jù)庫。

瀏覽器工作流程

img

由圖中可以發(fā)現(xiàn):

1)解析:

  • 解析HTML/SVG/XHTML,Webkit有三個C++的類對應這三類文檔。解析這三種文件會產生一個DOM Tree。
  • 解析CSS,解析CSS會產生CSS規(guī)則樹。
  • 解析Javascript,腳本,主要是通過DOM API和CSSOM API來操作DOM Tree和CSS Rule Tree.

2)解析完成后,瀏覽器引擎會通過DOM Tree 和 CSS Rule Tree 來構造 Rendering Tree。注意:

  • 渲染器對應于DOM元素,但關系不是一對一的。非可視化DOM元素將不會插入到渲染樹中。
  • CSS 的 Rule Tree主要是為了完成匹配并把CSS Rule附加上Rendering Tree上的每個Element。也就是DOM結點。也就是所謂的Frame。
  • 然后,計算每個Frame(也就是每個Element)的位置,這又叫l(wèi)ayout和reflow過程。

    ?

img

3)最后通過調用操作系統(tǒng)Native GUI的API繪制。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 先了解幾個基本概念: DOM Document Object Model,瀏覽器將HTML解析成樹形的數(shù)據(jù)結構;輸...
    饑人谷_tonya閱讀 629評論 0 0
  • 網頁的基本組成結構 網頁 = HTML + CSS + JavaScriptHTML:網頁元素內容CSS: 控制網...
    Vincent_永閱讀 448評論 0 0
  • 這次簡單聊聊我對瀏覽器的渲染機制的理解。首先需要提到幾個基本概念:DOM:Document Object Mode...
    annynick閱讀 308評論 0 0
  • 上圖為主流兩種主流內核的渲染主流程雖然 Webkit 和 Gecko 使用的術語略有不同,但整體流程是基本相同的。...
    QQQQQCY閱讀 492評論 0 0
  • 網頁=HTML(網頁元素內容)+css(控制網頁樣式)+JavaScript(操作網頁內容),實現(xiàn)功能或者效果。瀏...
    饑人谷_hfz閱讀 320評論 0 0

友情鏈接更多精彩內容