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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 為什麼說JavaScript中的DOM操作很慢JavaScript
- 為什麼說DOM操作很慢
- JS中DOM操作總結JS
- 回到基礎:什麼是DOM及DOM操作?
- js中為什麼for迴圈比forEach效能高?JS
- JS中的DOM— —節點以及操作JS
- js中Dom操作的個人總結JS
- Vue 為什麼要用虛擬 DOM(Virtual DOM)Vue
- js的dom操作JS
- 原生JS 操作 DOMJS
- JavaScript 操作DOM效能優化JavaScript優化
- jQuery中DOM操作jQuery
- 為什麼JS中0.1+0.2 != 0.3JS
- jQuery中的DOM操作jQuery
- jquery 中的dom操作jQuery
- angular中的dom操作Angular
- react中的DOM操作React
- JS中的DOMJS
- 為什麼在js中需要新增addEventListener()?JSdev
- angularjs中,為什麼要使用resolve?AngularJS
- MV* 框架 與 DOM操作為主 JS庫 的案例對比框架JS
- 為什麼nginx效能比apache效能好NginxApache
- js中DOM總結JS
- []==''返回?為什麼?運算子==進行了什麼操作?
- JS知識總結之DOM操作JS
- JS錯誤記錄 – dom操作 – 排序JS排序
- Extjs DOM操作的幾個類JS
- 為什麼是.jspa???JS
- React.js 小書 Lesson21 – ref 和 React.js 中的 DOM 操作ReactJS
- “React中的DOM操作”筆記React筆記
- 【譯】到底什麼是DOM
- [譯] 究竟什麼是DOM?
- JS 操作 DOM 改變方塊顏色JS
- 擺脫DOM操作,從TodoMVC看angularJSMVCAngularJS
- 為什麼要用Node.jsNode.js
- 為什麼需要require.jsUIJS
- 為什麼要用 Node.jsNode.js
- 為什麼用Node.js?Node.js