瀏覽器渲染頁面的過程

2022-08-16 16:15:15 字數 1448 閱讀 4861

瀏覽器是如何渲染頁面的?

首先,輸入的**在通過dns解析後得到伺服器位址。

然後,瀏覽器向伺服器發起http請求,經過tcp/ip三次握手確認連線後,伺服器將需要的**發回給瀏覽器。

最後,瀏覽器接收到**後進行解析,經過三大步驟:dom構造、布局、繪製頁面。

第一步,dom構造

瀏覽器首先將收到的html**,通過html解析器解析構建為一顆dom樹。

資料結構中有許多的樹。

而dom樹就像是一顆倒長著的大樹,這樣的物件模型決定了節點之間都有一定的關聯。

它們關係可能有父子、有兄弟,我們可以順著這顆樹做出許多操作。

接著將接收到的css**,通過css解析器構建出樣式表規則。

將這些規則分別放到對應的dom樹節點上,得到一顆帶有樣式屬性的dom樹。

第二步,布局

瀏覽器按從上到下,從左到右的順序,讀取dom樹的文件節點,順序存放到一條虛擬的傳送帶上。

傳送帶上的盒子就是節點,而這條流動的傳送帶就是文件流。

如果我們讀取到的節點是屬於另乙個節點下的子節點,那麼在放入傳送帶的時候,就應該按順序放到該節點盒子的內部。

如果子節點下還有子節點,在傳送帶上的時候就繼續套到子一級的盒子內部。

根據它在dom樹上的結構,可以巢狀的層級沒有限制的。

文件流排完之後,開始獲取計算節點的座標和大小等css屬性,作為盒子的包裝說明。

然後把盒子在倉庫裡一一擺放,這就將節點布局到了頁面。

第三步,繪製頁面

布局完成之後,我們在頁面上其實是看不到任何內容的,

瀏覽器只是計算出了每乙個節點物件應該被放到頁面的哪個位置上,但並沒有視覺化。

因此最後一步就是將所有內容繪製出來,完成整個頁面的渲染。

瀏覽器的渲染頁面的過程

1 瀏覽器把獲取到的html 解析成1個dom樹,html中的每個標籤都是dom樹中的1個節點,根節點就是常用的document物件。dom樹里包含了所有html標籤,包括display none隱藏,還有用js動態新增的元素。2 瀏覽器把所有樣式 使用者定義的css和使用者 解析成樣式結構體,在解...

瀏覽器渲染頁面過程

今天在某論壇上看到這麼乙個問題。現在頁面有個空div,我用js向裡面插入一段html,然後獲取div的高度,發現有時候得到的div的高度不準確,請問各位有什麼方法解決一下。那麼為了更好的理解這個問題,咱們今天來聊聊瀏覽器的渲染過程 解析html 解析css 構建render tree 布局 layo...

瀏覽器渲染頁面過程

一 瀏覽器載入和渲染html的順序 二 js的載入 3 因為瀏覽器的載入是從上到下一行一行的載入的,所以如果頁面同事定義了兩個相同命名的js函式,後面的函式會覆蓋前面的函式。三 html頁面載入和解析流程 四 domcontentloaded事件 domcontentloaded事件在許多webki...