瀏覽器工作原理2 渲染引擎

2021-07-29 19:44:41 字數 1119 閱讀 5088

介紹

渲染引擎

解析與dom樹構建

渲染樹構建

布局繪製

動態變化

渲染引擎的執行緒

css2可視模型

渲染引擎的職責就是渲染,即在瀏覽器視窗中顯示所請求的內容。

預設情況下,渲染引擎可以顯示html、xml文件及,它也可以借助外掛程式(一種瀏覽器擴充套件)顯示其他型別資料,例如使用pdf閱讀器外掛程式,可以顯示pdf格式,將由專門一章講解外掛程式及擴充套件,這裡只討論渲染引擎最主要的用途——顯示應用了css之後的html及。

本文所討論的瀏覽器——firefox、chrome和safari是基於兩種渲染引擎構建的,firefox使用geoko——mozilla自主研發的渲染引擎,safari和chrome都使用webkit。

渲染引擎首先通過網路獲得所請求文件的內容,通常以8k分塊的方式完成。

下面是渲染引擎在取得內容之後的基本流程:

解析html以構建dom樹 -> 構建render樹 -> 布局render樹 -> 繪製render樹

圖2:渲染引擎基本流程

渲染引擎開始解析html,並將標籤轉化為內容樹中的dom節點。接著,它解析外部css檔案及style標籤中的樣式資訊。這些樣式資訊以及html中的可見性指令將被用來構建另一棵樹——render樹。

render樹由一些包含有顏色和大小等屬性的矩形組成,它們將被按照正確的順序顯示到螢幕上。

render樹構建好了之後,將會執行布局過程,它將確定每個節點在螢幕上的確切座標。再下一步就是繪製,即遍歷render樹,並使用ui後端層繪製每個節點。

圖3:webkit主流程

圖4:mozilla的geoko渲染引擎主流程

從圖3和4中可以看出,儘管webkit和gecko使用的術語稍有不同,他們的主要流程基本相同。

gecko稱可見的格式化元素組成的樹為frame樹,每個元素都是乙個frame,webkit則使用render樹這個名詞來命名由渲染物件組成的樹。

webkit中元素的定位稱為布局,而gecko中稱為回流。

webkit稱利用dom節點及樣式資訊去構建render樹的過程為attachment,gecko在html和dom樹之間附加了一層,這層稱為內容接收器,相當製造dom元素的工廠。

下面將討論流程中的各個階段。

瀏覽器工作原理之渲染引擎

備註 文件物件模型 document object model,簡稱dom 1.關於css阻塞 宣告 只有link引入的外部css才能夠產生阻塞。1.style標籤中的樣式 1 由html解析器進行解析 2 不阻塞瀏覽器渲染 可能會產生 閃屏現象 3 不阻塞dom解析 1 由css解析器進行解析。2...

了解瀏覽器如何工作 渲染引擎

樹 渲染樹 render tree 渲染樹包含帶有顏色,尺寸等顯示屬性的矩形,這些矩形的順序與顯示順序一致。然後就是對渲染樹的每個節點進行布局處理,確定其在螢幕上的顯示位置。最後 就是遍歷渲染樹並用上一章提到的 後端層將每乙個節點繪製出來。以上步驟是乙個漸進的過程,為了提高使用者體驗,渲染引擎試圖盡...

瀏覽器工作原理(二) 渲染引擎的詳細介紹

首先給大家分享乙個巨牛巨牛的人工智慧教程,是我無意中發現的。教程不僅零基礎,通俗易懂,而且非常風趣幽默,還時不時有內涵段子,像看 一樣,哈哈 我正在學習中,覺得太牛了,所以分享給大家!點這裡可以跳轉到教程 首先給大家分享乙個巨牛巨牛的人工智慧教程,是我無意中發現的。教程不僅零基礎,通俗易懂,而且非常...