js中為什麼dom操作消耗效能
本文教程操作環境:windows7系統、jquery3.2.1版本,DELL G3電腦。
1、js中為什麼dom操作消耗效能?
JavaScript中js引擎和渲染引擎(瀏覽器核心)是獨立實現的。使用js 去操作 DOM 時,本質上是 JS 引擎和渲染引擎之間進行了“跨界交流”。每操作一次 DOM,都要跨界一次。跨界的次數一多,就會產生比較明顯的效能問題。
2、渲染引擎工作介紹:
解析HTML程式碼,生產DOM tree
解析CSS樣式,結合DOM tree生產Render tree(display: none;的結點不會存在Render tree上,最後不會被paint)
計算Render tree各個節點的佈局資訊,比如box的位置、尺寸、顏色、外形等
根據計算後的佈局資訊,呼叫瀏覽器的UI引擎進行渲染。
而操作dom會產生幾種動作,重繪和重排極大的影響渲染的效率。
3、最佳化方法:透過設定DOM元素的display樣式為none來隱藏元素
var myElement = document.getElementById('myElement'); myElement.style.display = 'none'; // 一些基於myElement的大量DOM操作 ... myElement.style.display = 'block';
以上就是JavaScript中dom消耗效能的原因及最佳化方法,希望能解決你的問題哦~更多JavaScript學習推薦:。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/855/viewspace-2831130/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 為什麼說DOM操作很慢
- JS中DOM操作總結JS
- js中為什麼for迴圈比forEach效能高?JS
- js的dom操作JS
- 原生JS 操作 DOMJS
- 回到基礎:什麼是DOM及DOM操作?
- JS中的DOM— —節點以及操作JS
- Vue 為什麼要用虛擬 DOM(Virtual DOM)Vue
- JavaScript 操作DOM效能優化JavaScript優化
- JS中的DOMJS
- JS錯誤記錄 – dom操作 – 排序JS排序
- JS知識總結之DOM操作JS
- 為什麼JS中0.1+0.2 != 0.3JS
- 為什麼在js中需要新增addEventListener()?JSdev
- jquery 中的dom操作jQuery
- jQuery中的DOM操作jQuery
- react中的DOM操作React
- js中DOM總結JS
- JS 操作 DOM 改變方塊顏色JS
- 為什麼nginx效能比apache效能好NginxApache
- Web全棧20201128-js的dom操作1Web全棧JS
- DOM操作
- DOM 操作
- []==''返回?為什麼?運算子==進行了什麼操作?
- 為什麼用Node.js?Node.js
- 為什麼要用Node.jsNode.js
- 為什麼需要require.jsUIJS
- BOM與DOM之DOM操作
- js 中~~是什麼意思?JS
- 【譯】到底什麼是DOM
- 什麼是虛擬DOM
- [譯] 究竟什麼是DOM?
- foreach迴圈中為什麼不要進行remove/add操作REM
- DOM常用操作
- jQuery 操作 DOMjQuery
- 為什麼說for...of是JS中的一顆寶石JS
- 為什麼要使用Node.JSNode.js
- 為什麼js會有閉包JS