減少操作DOM原因

2021-10-01 19:27:46 字數 393 閱讀 4848

為什麼不支援操作dom節點原因 個人覺得:在瀏覽器生成網頁時要經過

解析html 生成dom樹

解析css 生成css規則樹

合併dom樹和css樹生成render規則樹 開始渲染頁面

布局render樹對各元素尺寸,位置進行計算,得到每個節點的幾何資訊計算網 頁每個標籤布局距離 顏色 屬性 //觸發簡稱重排

開始繪製 render樹 // 重繪

瀏覽器會將各層節點的畫素資訊傳送給gpu,gpu將各層合成、繪製展示到頁面上

在我們操作dom節點 修改元素布局就會引發頁面的重排 然後在進行重繪

當然只修改dom元素中的一些 顏色 樣式 不會引發重排 重繪

如果修改其中的 布局內容 增刪dom 位置結構 尺寸 都會引發重排 重繪 從而消耗效能

為什麼要減少操作DOM

為什麼要減少操作dom?下面將按照以下布局同時操作div1和div2 然後在控制台列印出所需的時間,對時間盡心對比 以下是布局 lang en charset utf 8 titletitle head id div1 div id div2 div 這裡寫 script body html 對di...

js快取變數,減少DOM操作開銷

dom是頁面元素物件的體現,dom是個樹,每個dom節點和其他節點有子父 兄弟關係,每次尋找的時候,都會一層層的去尋找,對於相同且已經查詢過的節點,每次都去重新找,如果節點層級關係多了,效能就很低了。每次 都會建立乙個新的jquery物件。在乙個事件 區域內的this物件,就是代表事件呼叫本物件。如...

Js操作 DOM操作

一 節點屬性 dom 是樹型結構,相應的,可以通過一些節點屬性來遍歷節點樹 方法說明 nodename 節點名稱,相當於tagname.屬性節點返回屬性名,文字節點返回 text。nodename,是唯讀的。nodetype 節點的型別,返回值 1,元素節點 2,屬性節點 3,文字節點。nodety...