文章轉自:https://blog.csdn.net/lxcao/article/details/52931470
題目點評
這是一道純理論的題目,只要能夠將瀏覽器的渲染過程很專業的表述出來,一定會得到面試官的青睞,作爲一枚前端人員確實有必要了解一下瀏覽器的渲染過程是怎樣的,對於頁面性能的提升是有幫助的。解題思路
渲染引擎是幹什麼的渲染引擎可以顯示html、xml文檔及圖片,它也可以藉助插件(一種瀏覽器擴展)顯示其他類型數據,例如使用PDF閱讀器插件可以顯示PDF格式。
渲染引擎
不同的瀏覽器有不同的渲染引擎,對於渲染引擎的使用總結如下:Trident(MSHTML)內核:IE,MaxThon,TT,The World,360,搜狗瀏覽器等
Gecko內核:Netscape6及以上版本,FF,MozillaSuite/SeaMonkey等
Presto內核:Opera7及以上
Webkit內核:Safari,Chrome等
渲染主流程
渲染引擎首先通過網絡獲得所請求文檔的內容,通常以8K分塊的方式完成。下面是渲染引擎在取得內容之後的基本流程:
解析html以構建dom樹 -> 構建render樹 -> 佈局render樹 -> 繪製render樹
步驟詳細解釋
第一步:渲染引擎開始解析html,根據標籤構建DOM節點
第二步:根據css樣式構建渲染樹,包括元素的大小、顏色,隱藏的元素不會被構建到該樹中。
第三步:根據css樣式構建佈局樹,主要是確定元素要顯示的位置。
第四步:根據前面的信息,繪製渲染樹。