第一點
//高效簡潔 //低消能children //childNodeschildElementCount //childNodes.lengthfirstElementChild //firstChildlastEelmentChild //lastChildnextElementSibling //nextSiblingpreviousElementSibling //previousSibling
第二點:選取器的高效應用
<div id="footer_bottom"><a href="/AboutUS.aspx">雲棲社區</a><a href="/ContactUs.aspx">聯絡我們</a><a href="/about/ad.aspx">廣告服務</a><a href="/about/job.aspx">人才服務</a>©2006-2016 <a href="http://www.jb51.net/">雲棲社區</a></div>
var aArr1= document.querySelectorAll("#footer_bottom a");//簡潔高效var aArr2 = docuement.getElementById("footer_bottom").getElementsByTagName("a");//繁雜低效//return <a href="/AboutUS.aspx">雲棲社區</a>,<a href="/ContactUs.aspx">聯絡我們</a>,<a href="/about/ad.aspx">廣告服務</a>,<a href="/about/job.aspx">人才服務</a>,//選擇第一個子節點var a = document.querySelector("#footer_bottom a");//return <a href="/AboutUS.aspx">雲棲社區</a>//選擇多個節點var divs = document.querySelectorAll("div.footer,div.main,div.header");
注意:大部分瀏覽器都支援上述屬性,IE6,7,8僅支援children屬性
減少DOM的重新渲染與排版(三種方式)
1.先將要處理的元素隱藏,然後對其處理,最後顯示
2.建立檔案片段的方式(推薦) document.createDocumentFragment();
3.對要處理的元素複製一個副本,然後對副本操作,最後將副本替換原本
下面是雲棲社區小編的補充
將迴圈的Object Storage Service
使用前:
var str = "nanananana";for (var n = 0; n < str.length; n++) {}
使用後:
var str = "nanananana",strLgth = str.length;for (var n = 0; n < strLgth ; n++) {}
迴圈對效能的消耗是很大的,將迴圈的Object Storage Service,減少每次迴圈都要進行對象的計算。
最小化減少迴流和重繪
使用前:
var coored = document.getElementById("ctgHotelTab");document.getElementById("ctgHotelTab").style.top = coored.offsetTop + 35 + "px";
使用後:
var coored = document.getElementById("ctgHotelTab"),offetTop = coored.offsetTop + 35;document.getElementById("ctgHotelTab").style.top = offetTop + "px";