JavaScript編碼陷阱之一不必要的DOM操作
瀏覽量:3470
在學(xué)習(xí)軟件開(kāi)發(fā)編程的過(guò)程中,我們這些初學(xué)者經(jīng)常會(huì)遇到這樣或那樣的編程陷阱,在此列出關(guān)于javascript編程遇到的一些陷阱。
不必要的DOM操作
例如下面這段代碼:
- for (var i = 0; i < 100; i++){
- var li = $("<li>").html("This is list item #" + (i+1));
- $("#someUL").append(li);
- }
這段代碼對(duì)DOM進(jìn)行了100次修改,并且創(chuàng)建了100個(gè)不必要的jQuery對(duì)象。正確的做法是使用一個(gè)文檔片段,或者創(chuàng)建一個(gè)字符串,把100個(gè)<li>元素賦給該字符串。然后附加到HTML中。這樣就只需運(yùn)行DOM一次,代碼如下:
- var liststring = "";
- for (var i = 100; i > 0; i--){
- liststring += "<li>This is list item #" + (99- i);
- }
- document.getElementById("someUL").innerHTML(liststring);
正如上面所描述的一樣,下面再提供一個(gè)方式,使用數(shù)組:
- var liststring = "<li>"
- var lis = [];
- for (var i = 100; i > 0; i--){
- lis.push("This is list item #" + (99- i));
- }
- liststring += lis.join("</li><li>") + "</li>";
- document.getElementById("someUL").innerHTML(liststring);
這是在JavaScript創(chuàng)建重復(fù)HTML最快最簡(jiǎn)單的方法,無(wú)需使用模板庫(kù)或框架。