[JS]同步和异步的简单理解

19 篇文章 0 订阅
6 篇文章 0 订阅

同步和异步

Javascript语言将任务的执行模式分成两种:同步(Synchronous)和异步(Asynchronous)

同步:一个任务完成了,有返回结果,才可以开展下一个任务。比如去超市买东西付账,必须等前面一个人付完了,才能轮到你付账,中途你是不能离开的

f1();
f2();

异步:一个任务正在做,它的下一个任务不必等前任务结束就可以继续执行(类似多线程)。
比如你想买东西,又不想出门,那就直接网购天猫超市下单,下完单后,你可以干别的,比如刷剧,玩游戏。直到货物到了,你签收就可以。
再比如,花瓣网页面数据加载过程,不需要等所有数据获取后再显示页面,而是你边看边继续加载新的图片。
再再比如,你正在开发新功能,客户突然给你提了bug,加上这个bug的活,你手上有3个活,但是bug很急需要马上做,你可以先把最紧急的做了,等有时间再做继续开发心功能…有关异步的典型例子就是ajax。
下面这个例子是jQuery ajax() 方法

var answer=true;
$.ajax({
  url: "http://xxxxxxxx/",
  success: function(a){
    a=false;
  }  
});
alert(answer); //answer输出true

js是单线程的,Ajax(Asynchronous JavaScript and XML)默认是异步请求的,Ajax里面的代码还没有执行完,先执行了下面的代码,所以输出是true.
对AJAX不是很熟悉的同学可以看下参考链接最后一条

参考链接

http://www.ruanyifeng.com/blog/2012/12/asynchronous%EF%BC%BFjavascript.html
https://www.zhihu.com/question/19732473
https://www.runoob.com/jquery/ajax-ajax.html
https://segmentfault.com/a/1190000004322358

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值