복붙노트

[JQUERY] jQuery Ajax 콜백이 호출 기능을 기다립니다

JQUERY

jQuery Ajax 콜백이 호출 기능을 기다립니다

해결법


  1. 1.콜백 함수를 사용해야합니다. 아래 에서이 작업을 수행하십시오.

    콜백 함수를 사용해야합니다. 아래 에서이 작업을 수행하십시오.

    $(function() {
    
       // I think doAjax should doAnAjax()
       // here you're passing callback
       // but you're not using it doAnAjax()
    
        doAnAjax(Url, data, function(myRtn) {
            if (myRtnV == "success") {
                resetForm($('#myForm'));
                resetForm($('form[name=addChlGrp]'));
            } else {
                $('.rtnMsg').html("Opps! Ajax Error");
            }
        });
    });
    
    // pass callback as third parameter to doAnAjax()
    
    function doAnAjax(newUrl, data, callBack) {
        $.ajax({
            url: newUrl,
            async: true,
            dataType: 'html',
            beforeSend: function() {
                $('.rtnMsg').html("<img src=_cssStyleImg_-A-loading.gif>");
            },
            type: "GET",
            data: data,
            cache: false,
            success: function(data, textStatus, xhr) {
                $('.rtnMsg').html(data);
                myRtnA = "Success"
                return callBack( myRtnA );  // return callBack() with myRtna
            },
            error: function(xhr, textStatus, errorThrown) {
                $('.rtnMsg').html("opps: " + textStatus + " : " + errorThrown);
                myRtnA = "Error"
                return callBack ( myRtnA ); // return callBack() with myRtna
            }
        });
    

  2. 2.앞서 언급했듯이 콜백을 사용합니다.

    앞서 언급했듯이 콜백을 사용합니다.

    function process(url, params, successCallback, errorCallback) {
        $.ajax({
            success : successCallback,
            error : errorCallback,
            data : params,
            url : url,
            type : 'POST',
            dataType : 'json'
        });
    }
    
    process(
        'http://www.google.co.uk', 
        { 
            param1 : 'a' 
        }, 
        function(resp) { 
            alert('Success');
        },
        function() {
            alert('Uh oh');
        }
    );
    

    그런 다음 프로세스에 모든 기능을 전달할 수 있으며 성공 / 오류가 발생합니다.


  3. 3.대답은 당신이하지 않지만 쉽게 달성 할 수 있습니다. Ajax의 아이디어는 비동기 적이므로 JAX입니다. 즉, 원래 AJAX를 호출하는 함수는 AJAX 호출이 성공 또는 오류 핸들러에 있어야 할 때 완료 될 때까지 완료 될 때까지 완료 될 때까지 완료 될 때까지 기다리지 않습니다.

    대답은 당신이하지 않지만 쉽게 달성 할 수 있습니다. Ajax의 아이디어는 비동기 적이므로 JAX입니다. 즉, 원래 AJAX를 호출하는 함수는 AJAX 호출이 성공 또는 오류 핸들러에 있어야 할 때 완료 될 때까지 완료 될 때까지 완료 될 때까지 완료 될 때까지 기다리지 않습니다.

    동기식이 필요한 것이 있으면 비동기에서 플래그를 변경할 수 있습니다. 흔히 흔들리는 것입니다. FALSE는 실제로 SJAX 호출 (용어가 존재하지만 기술적으로 AJAX 호출이 존재하지도 않음)이됩니다.


  4. 4.jQuery에서 '지연'을 확인하십시오. 아래의 예는 비동기가 꺼지고 나에게 일하는 것처럼 보입니다.

    jQuery에서 '지연'을 확인하십시오. 아래의 예는 비동기가 꺼지고 나에게 일하는 것처럼 보입니다.

    $.ajax({
        url: "http://www.whatever.com/whatever",
        async: false }).done(function( data ) {
            alert(data); //or whatever
        })
    
  5. from https://stackoverflow.com/questions/11576176/wait-for-a-jquery-ajax-callback-from-calling-function by cc-by-sa and MIT license