DOM全稱爲文檔對象模型Document Object Model,其中一個DOM節點對應一個標籤,Dom樹即表示了HTML的文檔結構。轉化過程以下圖所示:css
CSSOM全稱爲CSS對象模型CSS Object Model,CSSOM告訴了瀏覽器元素在渲染時是什麼樣的。與HTML同樣,咱們須要將收到的 CSS 規則轉換爲瀏覽器能夠理解、可以處理的東西。所以,咱們重複與處理 HTML 很是類似的過程:html
CSSOM只輸出包含有樣式的節點,最終輸出爲:瀏覽器
DOM描述的是文檔結構,CSSOM描述的是文檔的樣式規則,構建這顆樹的目的是爲了以正確的順序繪製文檔內容,渲染樹爲:服務器
依照盒子模型,計算出每一個節點在屏幕中的位置及尺寸網絡
按照算出來的規則,經過顯卡,把內容畫到屏幕上。數據結構
當可見節點位置及尺寸發生變化時會發生重排,具體爲下面狀況:dom
不會發生重排的行爲:佈局
改變某個元素的背景色、文字顏色、邊框顏色等等不影響它周圍或內部佈局的屬性時,屏幕的一部分要重畫,可是元素的幾何尺寸沒有變。字體
它是一個可見節點改變除位置和大小之外的外觀所觸發的瀏覽器行爲,有下面幾個特色:編碼
問:瀏覽器在何時向服務器發送獲取css、js外部文件的請求?
答:解析DOM時碰到外部連接,若是還有connection,則馬上觸發下載請求。
問:CSSOM DOM JavaScript三者阻塞關係?
答:CSSOM DOM互不影響,JavaScript會阻塞DOM樹的構建但JS前的HTML能夠正常解析成DOM樹,CSSOM的構建會阻塞JavaScript的執行。這也解釋了爲何JavaScript的執行都須要訪問DOM和CSSOM的能力,卻只受CSSOM的阻塞。