国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

javascript性能優化之DOM交互操作實例分析

2024-05-06 16:26:10
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了javascript性能優化之DOM交互操作技巧,結合實例形式總結分析了JavaScript針對DOM操作過程中的各種常見優化操作技巧,需要的朋友可以參考下
 

本文實例講述了javascript性能優化之DOM交互操作技巧。分享給大家供大家參考,具體如下:

在javascript各個方面,DOM毫無疑問是最慢的一部分。DOM操作與交互要耗費大量時間,因為它們往往需要重新渲染整個頁面或者某一部分。理解如何優化與DOM的交互可以極大提高腳本完成的速度。

1、最小化DOM更新

看下面例子:

var list = document.getElementById("ul");for (var i=0; i < 10; i++){  var item = document.createELement("li");  item.appendChild(document.createTextNode("item" + i));  list.appendChild(item);}//這段代碼為列表添加10個項目。添加每個項目時,都有兩次DOM更新。總共需要20次DOM更新。

我們可以使用 文檔碎片 來最小化DOM更新。

var list = document.getElementById("ul");var fragment = document.createDocumentFragment();for (var i=0; i < 10; i++){  var item = document.createELement("li");  item.appendChild(document.createTextNode("item" + i));  fragment.appendChild(item);}list.appendChild(fragment);

更多關于 文檔碎片,詳見之前文章 《JavaScript文檔碎片操作實例分析

2、使用innerHTML

對于比較大的DOM更改,使用innerHTML要比createElement()和appendChild()快。

var list = document.getElementById("ul");var html = "";for (var i=0; i < 10; i++){  html += "<li>item" + i + "<li>";}list.innerHTML = html;

3、使用事件委托

詳見之前文章 《javascript性能優化之事件委托實例詳解

4、注意NodeList

最小化訪問NodeList的次數可以極大的改進腳本的性能,因為每次訪問NodeList,都會運行一次基于文檔的查詢。

var imgs = document.getElementsByTagName("img");for (var i=0, len=imgs.length; i < len; i++){  var image = imgs[i];  //more code}//這里的關鍵是長度length存入了len變量,而不是每次都去訪問NodeList的length屬性。當在循環中使用NodeList的時候,把imgs[i]放入image變量中,以避免在循環體內多次調用NodeList;

更多關于 NodeList,詳見之前文章 《在javascript將NodeList作為Array數組處理的方法

希望本文所述對大家JavaScript程序設計有所幫助。



注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 富裕县| 霍林郭勒市| 建瓯市| 江陵县| 林芝县| 安泽县| 海南省| 逊克县| 繁峙县| 华坪县| 安化县| 益阳市| 咸宁市| 漠河县| 茶陵县| 苗栗市| 邹城市| 普兰店市| 文安县| 砀山县| 永靖县| 台东县| 奎屯市| 南皮县| 米脂县| 海淀区| 庆城县| 资中县| 湖南省| 富裕县| 庆城县| 莱西市| 措美县| 金湖县| 眉山市| 龙州县| 茶陵县| 新泰市| 五常市| 左贡县| 绥棱县|