JavaScript & jQuery & Ajax

[JS/jQuery] append(), html()

라임오렌지원 2022. 8. 18. 10:50

JavaScript

- element.append()

- element.innerHTML

 

jQuery

- $().append()

- $().html()

 

 

일반적으로 dom 은 jquery 보다 속도면에서 훨씬 빠르고,

jquery는 dom 보다는 표현식이 간단하다는 차이가 있다.

 

 

append

타겟을 지정하여 데이터를 처리하면 처리한 태그가 추가로 처리되며

innerHTML 은 타겟의 모든 데이터를 덮어씌운다.

그래서 innerHTML += "추가할 데이터" 방식으로 대처한다.

 

가장 해서는 안되는 방법으로

반복문 내부에 append / innerHTML += 처리

하는 것.

 

//안 좋은 방식
for(i=0; i<1000; i++){
    var tag = "<div id='test'+i>" + i + "</div>";
    $("#innerTable").append(tag);
}

//추천 방식
var tag = "";
for(i = 0; i < 1000; i++){
    tag += "<div id='test'+i>" + i + "</div>";
}

$("#innerTable").append(tag);

안 좋은 방식의 코드는

데이터가 커지고 그려야 할 태그가 많아지면 굉장히 위험한 방법이다

브라우저에 굉장히 큰 부담을 주어 실행속도가 현저히 느려지며 생성하는데 굉장히 느려진다.

 

추천 방식의 코드는

빈 문자열 변수를 선언하여 해당 문자열에만 추가하는 방법이다.

 

 

innerHTML, html()

var test = 'Test';

document.getElementById("testTable").innerHTML = "<input value='" + test + "' type='hidden'>";

문제가 있다면,

만약 test가 프론트에서 select 선택된 값이나 입력된 값을 받고, 컨트롤러영역이나 데이터 영역으로 넘길 경우

그 값이 초기화되어 값 유지가 되지 않는다.

 

jQuery의 append

$("#testTable").append("<input value='" + test + "' type='hidden'>");

를 사용하면 태그만 추가되면서 값도 같이 추가되어 값을 넘겨줄 수 있다.

 

 

즉, 사용자(클라이언트)가 처리한 값을 유지하느냐 못하느냐의 차이가 있다.

 

 

 

https://myhappyman.tistory.com/43

 

Javascript - $().append(), Element.innerHTML 차이점

2020-01-10 내용추가) - 해당 글에 대한 내용을 추가합니다. innerHTML과 append() 메소드의 원천적인 동작 비교를 잘 못한거 같습니다. jQuery와 dom의 동작을 비교하려고 썻던 포스팅인데 정확하게 알아보

myhappyman.tistory.com

 

728x90

'JavaScript & jQuery & Ajax' 카테고리의 다른 글

[js/jQuery] jsTree, TreeView  (1) 2023.01.25
[js/jQuery] radio button event (button.checked)  (0) 2023.01.19
[Ajax] ajaxSetup()  (0) 2022.10.05
[js] preventDefault() stopPropagation()  (0) 2022.09.27
정규표현식 정리  (0) 2022.08.25