瀏覽器渲染

????????記錄一些知識,便于自己以后的學習,別無它用。


名詞

關鍵渲染路徑
???????瀏覽器收到服務器返回的 HTML,CSS,JavaScript 字節(jié)數據并對其進行解析和轉變成像素的渲染過程被稱為關鍵渲染路徑。


瀏覽器渲染過程

1. 處理 HTML 標記并構造 DOM 樹

???????字符編碼
??????????????將 HTML 的原始字節(jié)數據轉換為文件指定編碼的字符

???????令牌化
??????????????瀏覽器會根據 HTML 規(guī)范將字符串轉換成各種令牌
??????????????(如<html>、<p>、<body>這些標簽和這些標簽中的字符串和屬性等都會被轉化為令牌,每
??????????????個令牌具有特殊的含義和規(guī)則)

???????生成節(jié)點對象
??????????????每個令牌都會被轉換成定義其屬性和規(guī)則的對象,即節(jié)點對象

???????構建 DOM 樹
??????????????將節(jié)點對象構建成 DOM 樹型結構

a-5-1.PNG

2. 處理 CSS 標記并構造 CSSDOM 樹
???????瀏覽器解析遇到 <link> 標簽時,瀏覽器就開始解析 CSS 并構建 CSSOM 樹

a-5-2.PNG

3. 將 DOM 與 CSSOM 合并成一個渲染樹(Render Tree)

4. 根據渲染樹來布局(Layout),以計算每個節(jié)點的幾何信息
???????從渲染樹(Render Tree)的根節(jié)點開始遍歷,采用盒子模型的模式來表示每個
???????節(jié)點與其他元素之間的距離,從而確定每個元素在屏幕內的位置大小

5. 繪制(Paint) DOM 節(jié)點
???????將渲染樹(Render Tree)繪制成像素

a-5-3.PNG


重繪與回流

重繪(repaint)
???????將渲染樹的每個節(jié)點都轉換為屏幕上的實際像素
???????改變元素的背景色,文字顏色,邊框顏色等不影響元素周圍,布局的屬性時,屏幕的一部分要
???????重畫,但元素的幾何尺寸沒有變

回流(reflow)
???????計算節(jié)點在設備視口內的確切位置和幾何信息
???????元素的變化影響到了布局,需要重新渲染便開始回流,瀏覽器從 root frame 開始遞歸往下,一
???????次計算所有的結點幾何尺寸和位置。

回流必將重繪,重繪不一定回流


flush隊列

???????因為每句 JavaScript 操作 DOM 都回流或者重繪,對于瀏覽器壓力很大,所以瀏覽器會維護一個隊列,用于存放回流和重繪的操作,等隊列中的數量一定時或者一定時間后,會一次性批處理執(zhí)行隊列中的操作。

當獲取布局信息的操作的時候,會強制隊列刷新

        offsetTop    offsetLeft   offsetWidth   offsetHeight    
        scrollTop    scrollLeft   scrollWidth   scrollHeight
        clientTop    clientLeft   clientWidth   clientHeight
        getComputedSytle()
        getBoundingClientRect


感謝以下博客的博主,將知識分享出來

https://juejin.im/post/5ca0c0abe51d4553a942c17d
https://juejin.im/post/5d136700f265da1b7c6128db

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

相關閱讀更多精彩內容

  • 背景(做前端永遠也跨不過去了就是性能優(yōu)化) 公司目前有大量前后端耦合項目,瀏覽器的首屏加載速度非常的慢,在不段優(yōu)化...
    天一呀閱讀 1,210評論 0 4
  • 瀏覽器如何渲染網頁 要了解瀏覽器渲染頁面的過程,首先得知道一個名詞——關鍵渲染路徑。關鍵渲染路徑是指瀏覽器從最初接...
    oWSQo閱讀 33,291評論 5 74
  • 大家都知道萬維網的應用層使用了HTTP協(xié)議,并且用瀏覽器作為入口訪問網絡上的資源。用戶在使用瀏覽器訪問一個網站時需...
    SylvanasSun閱讀 2,239評論 1 12
  • /** * 創(chuàng)建者 yf * 創(chuàng)建時間 2018/8/17 11:51 * 描述 ${TODO} */...
    木葉紛飛閱讀 3,347評論 0 0
  • 江柏文:現貨黃金因海灣局勢降溫創(chuàng)4月最大跌幅! 據九肆點金了解5.18日為了給海灣局勢降溫,沙特外交部對外稱,正在...
    江柏文閱讀 116評論 0 0

友情鏈接更多精彩內容