티스토리 뷰
반응형
이 글은 아래 사이트를 토대로 작성되었습니다.
이벤트 핸들링
i). 일반적인 경우
$("#longlist li").on("mouseenter", function() {
$(this).text("Click me!");
});
$("#longlist li").on("click", function() {
$(this).text("Why did you click me?!");
});
- 필요한 요소마다 이벤트를 추가한다.
- 이벤트 핸들러를 위해 많은 메모리를 사용하는 방식이다.
ii). better practice
var listItems = $("#longlist li");
listItems.on({
"mouseenter": function() {
$(this).text("Click me!");
},
"click": function() {
$(this).text("Why did you click me?!");
}
});
- 불필요한 코드의 반복을 지양한다.
iii). best practice
var list = $("#longlist");
list.on("mouseenter", "li", function(){
$(this).text("Click me!");
});
list.on("click", "li", function() {
$(this).text("Why did you click me?!");
});
- 이벤트 위임을 이용하는 방법이다.
- 부모 요소가 하위 요소의 이벤트를 감지한다. (이벤트 버블링)
- 각 엘리먼트에 이벤트 핸들러를 할당하지 않고 부모 요소에만 할당하므로 초기화가 쉽고 메모리가 절약된다.
- 요소를 추가할 때 하위 요소마다 이벤트를 추가하지 않고, 부모 요소의 이벤트만 제어하므로 코드가 짧아진다.
AJAX
i). 일반적인 경우
function getName(personid) {
var dynamicData = {};
dynamicData["id"] = personID;
$.ajax({
url: "getName.php",
type: "get",
data: dynamicData,
success: function(data) {
// ajax 결과에 따른 UI 변화
$(".person-name").text(data.name);
}
});
}
getName("2342342");
ii). best practice
function getName(personid) {
var dynamicData = {};
dynamicData["id"] = personID;
return $.ajax({
url: "getName.php",
type: "get",
data: dynamicData
});
}
getName("2342342").done(function(data) {
// ajax 결과에 따른 UI 변화
$(".person-name").text(data.name);
});
- promise를 사용할 것
'Dev. > javascript' 카테고리의 다른 글
[JS] 구조 분해 할당 (destructing assignment) (0) | 2021.03.09 |
---|---|
[Vanilla JS] document ready 표현 (0) | 2021.02.22 |
[JS] 화살표 함수 (0) | 2021.02.17 |
[jQuery] best practice - DOM manipulation (0) | 2021.02.17 |
[jQuery] best practice - jQuery Ready Event (0) | 2021.02.16 |
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- eureka
- Docker
- Database
- Puppeteer
- etc
- shell
- AWS
- Spring Cloud Config
- 코딩테스트
- dev
- pgloader
- postgresql
- Linux
- react
- JEST
- mysql
- Java
- kotlin
- JPA
- Node.js
- jQuery
- IntelliJ
- javascript
- Git
- Gradle
- Vault
- hashicorp
- spring boot
- terraform
- AWS IoT
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함