如果您进行一次Ajax同步通话,是否需要添加' async:false'所有其他Ajax调用也是如此?

时间:2016-02-15 17:37:59

标签: jquery ajax

我在同一个脚本上有三个ajax调用。我需要执行此同步,因为它会在.......

之后处理一些内容
 if(isHtmlFieldOnParentFull){
               //lleno el textarea con el valor del html input del campo html oculto de la ventana padre
               $editor.text(htmlInputParentValue); 
           }else{
            //lleno el input html de la ventana padre  con el html de la plantilla original para que se reemplazen las tags en el siguiente paso 
                 var request = $.ajax({
                   type: 'POST',
                   url: '/editor/GetHtmlContentPlantilla',
                   async: false,
                   data: { id_acto_doc_plantilla:  getUrlVars()["id_acto_doc_plantilla"]
                        },
                success: function(data) {
                    $htmlInputParent.val(data);
                    },
                   error: function(data) {
                       alert("Error");
                        }
                     })
           }

但之后我还有2个ajax调用。我真的应该将它们定义为

  

异步:假

也是?因为我认为第一个会阻止其他两个的执行,直到它的回调,但是我试着让其他人没有那个参数而且它不起作用,如果我将每个调用都设为异步:false然后它工作正常。

1 个答案:

答案 0 :(得分:1)

从当前AJAX请求的成功回调中进行后续AJAX调用,依此类推。 例如:

//first ajax

$.ajax({
 url: 'example.com',
 success: function(data){
  second_call();
 }
});

function second_call(){
 $.ajax({
  url: 'example.com',
  success: function(data){
   third_call();
  }
 });
}

function third_call(){
 $.ajax({
  url: 'example.com',
  success: function(data){
   //your code goes here
  }
 });
}