티스토리 뷰

jQuery

[jQuery] ajax async 설정

jckim 2020. 2. 19. 22:56

ajax를 사용해야하는 부분이 있어서 평소와 같이 ajax 호출을 하여

반환값로 다음 로직을 진행하는 방식 구현하는 와중에

내가 원하는 값이 반환되지 않는 것을 확인하였다.

 

작성중이던 소스는 간략하게 아래와 같다.

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
function a(){
    $.ajax({
        url : '/ajax/result',
        dataType : 'json',
        data : jsonData,
        method : 'POST',
        succecss : function(data){
            retrun data.value;
        },
        error : function(e){
            alert(e);
            return;
        }
    })
}
 
function b(code){
    ...
    ...
}
 
function all(){
    var code = a();
    b(code);
}
cs

함수 all을 실행하면

함수 a에서 ajax요청을 하여 반환한 값을

함수 b의 매개변수로 사용하여 진행을 하는 로직이었다.

 

하지만 원하는 결과가 나오지 않아 개발자 모드로 디버깅을 수행하였다.

그 결과 스크립트가 작동되는 순서에서 오류 원인을 확인 할 수 있었다.

 

원인은 함수 all 실행시

함수 a의 ajax 요청을 통해 반환값을 가져오는 동안에 완전히 값을 반환받지 못하였지만

함수 b가 진행이되어 결국 함수 b 는 undefined 라는 매개변수를 이용하여 진행이 되어 오류가 발생한 것이다.

 

오류해결을 위해 ajax의 설정 항목을 확인하던 중

async 값을 설정하면 해결이 가능하다는 것을 확인하였다.

async 설정은 true/false 값을 설정 가능하며

true인 경우 비동기적으로 요청이 되어 위에서 발생한 상황처럼 요청이 끝나기 전에 다음 작업이 활성화되는 경우가 생길 수 있다.

false인 경우 동기적으로 요청을 하여 해당 요청이 끝나기 전까지 다른 작업을 비활성화 할 수 있다.

별다른 설정이 없다면 기본값은 true 값 이다.

 

아래 소스로 async 설정을 추가하여 정상적으로 로직이 진행된 것을 확인하였다.

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 a(){
    $.ajax({
        url : '/ajax/result',
        dataType : 'json',
        data : jsonData,
        method : 'POST',
        async : false//설정 추가
        succecss : function(data){
            retrun data.value;
        },
        error : function(e){
            alert(e);
            return;
        }
    })
}
 
function b(code){
    ...
    ...
}
 
function all(){
    var code = a();
    b(code);
}
cs

참고한 ajax 관련 API URL - https://api.jquery.com/jQuery.ajax/

'jQuery' 카테고리의 다른 글

Jquery append 시 연관없는 이벤트 발생 해결  (0) 2024.06.26
jQuery datepicker 날짜 초기화하기  (0) 2022.03.23
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/03   »
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
글 보관함