스프링 JSP에서 코딩을 하다가 버튼을 클릭하면 한번만 실행을 해줘야 할 때가 있다.
그런데 네트워크 응답을 받기 전에 버튼을 여러번 누르면 여러번 이벤트가 요청된다.
별 중요하지 않은 것이라면 상관이 없는데, 파일이 없로드 된다거나 중요 사항이 한번만 신청되어야 하는데 여러번 신청되면 난감하다.
버튼을 클릭했을 때 ajax가 한 번만 호출되는 방법은 구글링을 해봤지만 결국은 2가지인 듯 하다.
1. 요약
1.1 alert창 띄워서 확인 버튼 누르게 하기.
1.2 하기 소스 따라하기
2. 소스코드
var ajax_cnt = 0;
var current_ajax_num = ajax_cnt;
<script type="text/javascript">
function fnSave() {
$("#form").ajaxSubmit({
type : "POST",
dataType : "json",
url : "URL",
beforeSend:function(request){
ajax_cnt = ajax_cnt + 1;
},
success : function(data) {
if(data.rtn != "OK"){
return true;
}
if(current_ajax_num == ajax_cnt - 1) {
// 리턴 넣으면 안됨
}
}, error : function(request, status, msg) {
ajax_cnt = 0;
return false;
}
});
}
</script>
나도 여러번 시행착오를 했고, 구글링을 다 해서 된다는 소스 적용해도 안되는게 90%였다.
이 소스는 어느정도 검증이 되었다고 생각하고, 여러번 버튼을 눌러도 한번만 신청된다.
이거 말고도 ajax를 동기식으로 처리하는 방법이 있을 것이다.
근데 해보니까 이거만한게 없는 것 같다.
개발은 시간이 금이지 않은가? 나중에 나도 필요하면 쓸라구 여기에 공유한다.
'Stack Overflow > 스프링' 카테고리의 다른 글
[스프링] Internal Server Error 예외 오류가 났을 때 원인 찾는 방법 (4) | 2022.02.22 |
---|---|
[스프링] TOMCAT 7.0 이하 사용 관련하여 Apache 보안 취약점 패치 Log4j 2.17.0 빌드 안되는 이슈 해결 방법 (4) | 2022.02.19 |
[스프링] JSP 검색어 따른 데이터 배열 리스트 목록 결과 실시간 필터링 개발 (팝업) (4) | 2022.02.09 |
[스프링] 체크박스 한번에 모든 것을 disabled 구분하면서 선택, 해제하기 (4) | 2022.01.29 |
[스프링] JSTL에서 날짜 Date 추출 및 일자 연산 코드 (4) | 2022.01.15 |
댓글