source

Ajax 호출 완료 후 함수 실행

ittop 2023. 3. 23. 23:11
반응형

Ajax 호출 완료 후 함수 실행

저는 Ajax에 처음 와서 For loop을 사용하면서 Ajax를 사용하려고 합니다.Ajax 콜 후 Ajax 콜에서 작성된 변수를 사용하는 함수를 실행하고 있습니다.이 함수는 2회만 실행됩니다.루프가 다시 시작되기 전에 Ajax 콜에 충분한 시간이 없을 수 있습니다.함수 인쇄를 실행하기 전에 Ajax 호출을 확인하는 방법이 있습니까?With Ajax()?인쇄는 필요 없습니다.WithAjax() 함수는 Ajax 콜이 완료될 때까지 실행됩니다.어떤 도움이라도 주시면 대단히 감사하겠습니다.

var id;
var vname;
function ajaxCall(){
for(var q = 1; q<=10; q++){
 $.ajax({                                            
         url: 'api.php',                        
         data: 'id1='+q+'',                                                         
         dataType: 'json',
         async:false,                    
         success: function(data)          
         {   
            id = data[0];              
            vname = data[1];
         }
      });

       printWithAjax(); 

 }//end of the for statement
}//end of ajax call function

다음 코드를 사용해 보십시오.

var id;
var vname;
function ajaxCall(){
for(var q = 1; q<=10; q++){
 $.ajax({                                            
     url: 'api.php',                        
     data: 'id1='+q+'',                                                         
     dataType: 'json',
     async:false,                    
     success: function(data)          
     {   
        id = data[0];              
        vname = data[1];
     },
    complete: function (data) {
      printWithAjax(); 
     }
    });

  }//end of the for statement
  }//end of ajax call function

"complete" 함수는 ajax의 "성공" 후에만 실행됩니다.그러니 인쇄소에 전화해봐With Ajax()가 "complete"에 있습니다.이거면 되겠네요.

또는 를 사용할 수 있습니다.

.ajaxComplete() 는, 페이지의 각 AJAX 요구가 완료된 후에 기동됩니다.

$( document ).ajaxComplete(function() {
  yourFunction();
});

.ajaxStop() 는, 페이지의 모든 AJAX 요구가 완료된 후에 기동됩니다.

$( document ).ajaxStop(function() {
  yourFunction();
});

함수에 .done()을 추가합니다.

var id;
var vname;
function ajaxCall(){
for(var q = 1; q<=10; q++){
 $.ajax({                                            
         url: 'api.php',                        
         data: 'id1='+q+'',                                                         
         dataType: 'json',
         async:false,                    
         success: function(data)          
         {   
            id = data[0];              
            vname = data[1];
         }
      }).done(function(){
           printWithAjax(); 
      });



 }//end of the for statement
}//end of ajax call function

추가.done()당신의 Ajax 요청에 따라.

$.ajax({
  url: "test.html",
  context: document.body
}).done(function() { //use this
  alert("DONE!");
});

자세한 내용은 JQuery Document를 참조하십시오..done()

async = false를 헤드로 설정해야 합니다.ajax 대신 post/get을 사용합니다.

jQuery.ajaxSetup({async:false});

    $.post({
        url: 'api.php',
        data: 'id1=' + q + '',
        dataType: 'json',
        success: function (data) {

            id = data[0];
            vname = data[1];

        }
    });

해라

var id;
var vname;
function ajaxCall(){
for(var q = 1; q<=10; q++){
 $.ajax({  

 url: 'api.php',                        
 data: 'id1='+q+'',                                                         
 dataType: 'json',
 success: function(data)          
  {

    id = data[0];              
   vname = data[1];
   printWithAjax();
}
      });



}//end of the for statement
  }//end of ajax call function

언급URL : https://stackoverflow.com/questions/23283276/execute-function-after-ajax-call-is-complete

반응형