Ajax同步与异步的区别
在使用ajax请求数据的时候,通常情况下我们都是把```async:true```当做默认来处理,让我们的请求成为一个异步的请求。但是在某种情况下我们是需要吧```async:false```设置为false的,方便我们进行观察数据的走向、去处。那**同步和异步**有什么区别呢?
##同步请求
async:false
...$.ajax({async:false,type:"POST",url:"Venue.aspx?act=init",dataType:"html",success:function(result){//function1()f1();f2();}failure:function(result){alert('我在弹');}}function2();...
分析
-这个时候ajax块发出请求后,他会等待在function1()这个地方,不会去执行function2(),直到function1()部分执行完毕。
##异步请求
async:true
...$.ajax({async:true,//默认为truetype:"POST",url:"./xxx/xxx/a/b.html",dataType:"html",success:function(result){//function1()f1();f2();}failure:function(result){alert('我弹');},}function2();...
分析
-当ajax块发出请求后,他将停留function1(),等待返回结果,但同时(在这个等待过程中),function2()就可以跑起来。
总结(两者的区别)
1.同步的请求的时候,代码好比在排队,必须是一个挨着一个地去执行,前面的没有结束,后面的代码就处于一个阻塞的状态。
2.异步执行的时候,数据请求的同时,其他代码语句也可以同步执行,比如,在数据请求的时候,由于某些愿意,需要慢慢的返回请求结果,在这个时候带宽是很空闲的,那么,代码不会等到前面的数据完全请求返回就可以开始后面的代码运行。