前端请求异步与同步的区别

16 篇文章 0 订阅

用jQuery的ajax做一个简单的例子,其他类型(如:axios)同理,看代码

异步方式:

$(function() {  
    $.ajax({  
        type : 'post',  
        async : true,  
        url : '',  
        cache : false,  
        data : {},  
        success : function(data){  
            alert("1111");  
        }  
    });  
    alert("22222");  
});  
 // 结果肯定是先22222后111111

同步方式:

$(function() {  
    $.ajax({  
        type : 'post',  
        async : false,  
        url : '',  
        cache : false,  
        data : {},  
        success : function(data){  
            alert("1111");  
        }  
    });  
    alert("22222");  
});  
// 结果肯定是先11111后22222

简单理解的话就是:
正常情况下,ajax默认是异步的(除非强制将async设置为 false),success是回调函数,只有等主体函数全部执行完,才会执行success里面的函数;如果async == false,那代码将按照顺序从上到下依次执行。

异步:
在异步模式下,当我们使用AJAX发送完请求后,可能还有代码需要执行。这个时候可能由于种种原因导致服务器还没有响应我们的请求,但是因为我们采用了异步执行方式,所有包含AJAX请求代码的函数中的剩余代码将继续执行。如果我们是将请求结果交由另外一个JS函数去处理的,那么,这个时候就好比两条线程同时执行一样。

同步:
在同步模式下,当我们使用AJAX发送完请求后,后续还有代码需要执行,我们同样将服务器响应交由另一个JS函数去处理,但是这时的代码执行情况是:在服务器没有响应或者处理响应结果的JS函数还没有处理完成return时,包含请求代码的函数的剩余代码是不能够执行的。就好比单线程一样,请求发出后就进入阻塞状态,知道接触阻塞余下的代码才会继续执行。

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值