본문 바로가기
개발/javascript & jquery

한 화면에 여러개의 ajax를 실행해야 할 경우

by areumtb 2017. 5. 22.

METIS 에서 


공통 > 관리 > 업무환경설정 > 대출환경설정


에서 탭이 여러개라 한꺼번에 6개의 데이터를 조회해야 할 경우가 있었다.


이때 


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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
;(function($) {
    
 
    
    //대출/반납 형식 & 이용자 그리드,조회
    loanAndReturn_gridPrint();
    
    //반납 연기/예약 환경 그리드 , 조회
    loanExtendAndReservation_gridPrint();
    
    //연체자료 그리드,조회
    overDueBook_gridPrint();
    
    //대출자료제한 그리드,조회
    limitLoanByCode_gridPrint();
    
    //개인정보보호정책 그리드,조회
    personalInfo_gridPrint();
    
    
    
    //대출/반납 형식 & 이용자 그리드,조회
    loanAndReturn_Search();
    
    //반납 연기/예약 환경 그리드 , 조회
    loanExtendAndReservation_Search();
    
    //연체자료 그리드,조회
    overDueBook_Search();
    
    //대출자료제한 그리드,조회
    limitLoanByCode_Search("SEPARATE_SHELF_CODE");
    
    //개인정보보호정책 그리드,조회
    personalInfo_Search();
    
    
    //직급별 환경
    userClassCode_Search();
 
    //이용약관 개정일,시행일 달력
    $("#enforcement_date").singleDatePicker();
    $("#metis_juridical_date").singleDatePicker();
    
})(jQuery);
cs
 
이렇게 한꺼번에 실행을 하였다. 

그런데 이런 에러메시지가 발생하였다.

중복된 요청을 하였습니다. 






AJAX는 비동기식 전송으로 한꺼번에 여러개를 처리할 경우에는 하나 끝나고 하나 이렇게가 아니라 동시에 실행을 하기떄문에

이렇게 중복된 요청을 하였다고 에러가 발생하기도 한다.


이러한 에러를 피하기 위해서는 순차적으로 실행을 해야한다.


이럴땐 AJAX 에 async : false, 옵션을 주면 순차적으로 실행이 된다. 


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
//조회
function userClassCode_Search(){
    $.ajax({
        type    : "POST",
        url     : "/METIS/SystemConfig/Loan/getEnvironmentOfUserClassCode.do",
        dataType: "json",
        data    : "",
        async    : false,
        success : function(data) {
                if(data.status == "SUCCESS"){
//                    console.log("직급별환경");
//                    console.dir(data);
                    if(data.totalCount == 0){
                        onlyMessage("검색된 자료가 없습니다.");
                    }else{
                        userClassCode_gridParam_set(data.USER_CLASS_CODE_LIST);
                        regCode_and_userClasCode_header(data);
                    }                    
                }else {
                    onlyMessage(data.statusDescription);
                }
            }
        });    
     
}
 
cs


댓글