同步与异步的个人理解

听了很多人说同步与异步的区别,面试中也会经常遇到这类问题。现在我把自己的理解整理如下:

首先要清楚什么是同步和异步:

同步:比如我给你打电话,你立马就接了,然后跟我通话,就是同步

异步:如果打电话给你,你手机不在身边,待会你再给我打过来,就是异步

还比如说:就像串联电路和并联电路,串联电路中打开开关,所有的灯都会亮,这就相当于同步。并联电路中,每个灯都有开关来控制,互不受影响,就相当于异步。

同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干别的事。

异步: 请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕。

比如说,你在网页中填写一个表单的时候。如果是同步,填写完成后提交给服务器,等待服务器响应,如果信息填写错误,就要重新填写全部信息再去发送给服务器验证。如果是异步,就是说我填写的时候可以写完一条就向服务器提交来验证。这个过程我还能继续填写信息,不影响我下面信息的填写。

同步与异步的区别:同步需要等待,而异步无需等待。

ajax中的同步与异步:

ajax中根据async的值不同分为同步(async = false)和异步(async = true)两种执行方式;在W3C的教程中推荐使用异步执行。

ajax同步:当我们使用ajax发送完请求后,后续还有代码需要执行,我们同样将服务器响应交由另一个JS函数去处理,但是这时的代码执行情况是:在服务器没有响应或者处理响应结果的JS函数还没有处理完成return时,包含请求代码的函数的剩余代码是不能够执行的。也就是说,同步就是走ajax这条路,走完再走ajax后面程序的路。

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,833评论 19 139
  • AJAX 原生js操作ajax 1.创建XMLHttpRequest对象 var xhr = new XMLHtt...
    碧玉含香阅读 8,675评论 0 7
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,986评论 25 709
  • 我是觉得你很不错,可我并不想恋爱。 ------章子吴 我也许还是太幼稚,不懂得一份真正的爱情。 毕竟我在这...
    南城微南阅读 4,044评论 11 14
  • 女孩,我给你盖了座宫殿 离这里不远 就在我心里 从地毯到吊灯 都依着你...
    疯宝宝3000阅读 1,292评论 0 1

友情链接更多精彩内容