ajax async异步

async默认的设置值为true,这种情况为异步方式,就是说当ajax发送请求后,在等待server端返回的这个过程中,前台会继续执行ajax块后面的脚本,直到server端返回正确的结果才会去执行success,也就是说这时候执行的是两个线程,ajax块发出请求后一个线程和ajax块后面的脚本(另一个线程)例:

 $.ajax({   
           type:"POST",  
           url:"Venue.aspx?act=init",  
           dataType:"html",  
           success:function(result){   //function1()  
              f1();  
              f2();  
           }  
            failure:function (result) {   
               alert('Failed');   
           },  
   }  
  function2();

在上例中,当ajax块发出请求后,他将停留function1(),等待server端的返回,但同时(在这个等待过程中),前台会去执行function2(),也就是说,在这个时候出现两个线程,我们这里暂且说为function1()和function2()。

         当把asycn设为false时,这时ajax的请求时同步的,也就是说,这个时候ajax块发出请求后,他会等待在function1()这个地方,不会去执行function2(),直到function1()部分执行完毕。

          注:success中的方法f1(),f2()一般(即f1(),f2()不包括ajax块时)不会异步执行,就是说f2的执行是以f1()为前提的。


原文地址:https://www.cnblogs.com/archermeng/p/7537369.html