반응형
# lodash 라이브러리
- lodash는 javascript 유틸리티 라이브러리이다.
- Debounce는 lodash에 있는 기능 중 하나이다.
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.15/lodash.min.js"></script>
## Debounce
- 특정 함수가 반복 실행 될 경우 사용, 지연시간을 설정하여 반복된 호출을 1번 호출하도록 제어해준다.
- 주로 회원가입 폼에서 많이사용, 회원가입 시 아이디 등 중복체크 기능을 사용할 경우 값이 매번 입력될 때마다 중복체크가 되어 서버 낭비가 발생하는 것을 방지해주기 위해 사용한다.
_.debounce(콜백함수, 시간)
## 예제
- 아이디 중복 체크 기능 Debounce 이용한 딜레이 설정
- 설정 후 확인 시 F12 > Network > XHR 에서 입력하면서 확인 가능
<div class="form-row">
<div class="label">아이디</div>
<div class="input">
<input onkeyup="JoinForm__checkLoginIdDup(this);" type="text" name="loginId" maxlength="20" placeholder="회원 id 입력">
<div class="message-msg"></div>
</div>
</div>
<script>
<!-- 회원가입 아이디 중복 체크 -->
function JoinForm__checkLoginIdDup(input) {
var form = input.form;
form.loginId.value = form.loginId.value.trim();
if (form.loginId.value.length == 0) {
return;
}
$.get('getLoginIdDup', {
loginId : form.loginId.value
}, function(data) {
var $message = $(form.loginId).next();
// resultCode : 중복 체크 값 S- 중복 아님 / F- 중복
if (data.resultCode.substr(0, 2) == 'S-') {
$message.empty().append(
'<div style="color:green;">' + data.msg + '</div>');
JoinForm__validLoginId = data.loginId;
} else {
$message.empty().append(
'<div style="color:red;">' + data.msg + '</div>');
JoinForm__validLoginId = '';
}
}, 'json');
}
<!-- lodash 라이브러리 (debounce) 를 이용한 딜레이(1초) 설정 -->
JoinForm__checkLoginIdDup = _.debounce(JoinForm__checkLoginIdDup, 1000);
</script>
반응형
'프로그래밍 > HTML, CSS, JSP, 서블릿' 카테고리의 다른 글
input file타입 확장자 제한하기 (0) | 2020.08.14 |
---|---|
textarea 설명, textarea 속성 (0) | 2020.08.03 |
스크롤 바 하단으로 위치하기(제이쿼리) (0) | 2020.07.29 |
CSS 인풋, 라벨로 모달윈도우(팝업효과) 만들기 (0) | 2020.07.18 |
CSS 이용한 움직이는 이미지 (0) | 2020.07.18 |