前端面试经常被问——同步与异步的区别是什么?答案呢,大家都知道,只是在于你怎么表达

这种问题也不是很复杂,建议在回答的时候最好结合自己的实际项目开发以及自己的理解来回答,这样的效果会比较好,面试上提的问题本来目的就是想考察你是否熟悉,是否有用到过,如果你是结合你的项目来回答问题的,很显然向面试官传递了一个信息就是你是有开发经验的。

概况:同步是阻塞模式,异步是非阻塞模式

同步的理解:

同步就是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去;

同步就相当于是 当客户端发送请求给服务端,在等待服务端响应的请求时,客户端不做其他的事情。当服务端做完了才返回到客户端。这样的话客户端需要一直等待。用户使用起来会有不友好。

举个我在项目中用到同步的例子

详情页渲染需要掉接口来完成客户和部门两个字段的渲染,新建页面的逻辑是必须先选择客户,拿到客户的id再去请求部门的接口,所以我调详情页接口的时候一开始没考虑到这个问题直接渲染,结果就是出错,因为代码从上到下执行,是异步请求,我的客户还没请求成功的同时,部门也已经请求完了,解决方法,我就是接口套接口,把请求部门的接口写在客户接口的里面,形成同步请求,先请求完成之后再去调部门接口!

异步的理解:

异步是指进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态。当有消息返回时系统会通知进程进行处理,这样可以提高执行的效率。
异步就相当于当客户端发送给服务端请求时,在等待服务端响应的时候,客户端可以做其他的事情,这样节约了时间,提高了效率。

存在就有其道理 异步虽然好 但是有些问题是要用同步用来解决,比如有些东西我们需要的是拿到返回的数据在进行操作的。这些是异步所无法解决的。

ps:加深你的理解小例子:

  • 比方说一个人边吃饭,边看手机,边说话,就是异步处理的方式。

  • 同步处理就不一样了,说话后在吃饭,吃完饭后在看手机,必须等待上一件事完了,才执行后面的事情。

  • 而在前端开发中常见的异步一般常见的包括:setTimeout,setInterval,ajax

  • setTimeout是定时延时运行函数,只执行一次

  • setInterval也是定时延时函数,但是这个函数本身可以一直执行,不会停止,除非把它清除。

  • ajax是前端常用的和后台进行异步交互数据的请求方式,其实它本身也包括同步和异步,同步的就是由代码从上到下顺序执行,而异步的ajax是我们发送请求到服务器之后,只需要在监听服务器的响应即可,不用等到请求结束在执行其他的代码,这就是异步ajax

同步与异步的区别(一看则懂)相关推荐

  1. 同步和异步的区别及优缺点

    学习编程,同步异步是必须要理解学习的知识点,接下来让我们一起通过举例来理解同步和异步的区别,以及同步和异步的优缺点吧 同步和异步的区别 程序里面的同步和异步和我们现实生活理解不太一样,一般我们对同步的 ...

  2. 同步和异步的区别及优缺点 通俗理解

    同步和异步的区别及优缺点 学习编程,同步异步是必须要理解学习的知识点,接下来让我们一起通过举例来理解同步和异步的区别,以及同步和异步的优缺点吧 同步和异步的区别 程序里面的同步和异步和我们现实生活理解 ...

  3. Linux---阻塞与非阻塞、同步与异步的区别

    阻塞 为了完成某个功能,发起调用,如果当前不具备完成的条件,则会一直等待. 非阻塞 为了完成某个功能,发起调用,如果当前不具备完成功能的条件,则立即报错返回. 阻塞与非阻塞的区别 一个调用发起时,不具 ...

  4. 简述同步和异步的区别

    简述同步和异步的区别 同步: 同步的思想是:所有的操作都做完,才返回给用户.这样用户在线等待的时间太长,给用户一种卡死了的感觉(就是系统迁移中,点击了迁移,界面就不动了,但是程序还在执行,卡死了的感觉 ...

  5. 线程中的同步和异步的区别

    线程中的同步和异步的区别 一.同步        所谓同步,就是发出一个功能调用时,在没有得到结果之前,该调用就不返回或继续执行后续操作.是多个线程同时访问同一资源,等待资源访问结束,浪费时间,效率不 ...

  6. js同步和异步的区别

    js同步和异步的区别 同步任务 异步任务 同步和异步运行机制 首先,不同于其他后端语言,javascript语言是单线程机制.所谓单线程就是按次序执行,执行完一个任务再执行下一个.对于浏览器来说,也就 ...

  7. JS中同步和异步的区别

    JS中同步和异步的区别 js是一门单线程语言,所谓"单线程",就是指一次只能完成一件任务.如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推.如果一个任务耗 ...

  8. android同步异步的区别是什么,同步和异步的区别.md

    #同步和异步的区别 3.1 何为同步和异步 Android Telephony相关应用中,Telephony大量使用了Handler.Broadcast等通信方式,而在Android操作系统平台中的H ...

  9. Java --- 线程同步和异步的区别

    1. Java 线程 同步与异步 多线程并发时,多个线程同时请求同一个资源,必然导致此资源的数据不安全,A线程修改了B线程的处理的数据,而B线程又修改了A线程处理的数理.显然这是由于全局资源造成的,有 ...

最新文章

  1. FPGA(5)数码管静态显示与动态显示
  2. mysql客户端指令_mysql command line client(mysql命令行客户端)
  3. 彩色直方图均衡化实现
  4. Windows性能调优: Perfomn.exe 和Perfmon /res
  5. Spring Boot 2.0正式发布,升还是不升呢?
  6. PMP-【第10章 项目沟通管理】-2021-2-16(220页-231页)
  7. vs2012 error c4996: 'fopen': This function or variable may be unsafe
  8. 【倒计时】Qtum量子链全节点超级大奖1000QTUM,不要错过!
  9. Shiro安全框架的使用
  10. centos7 时间设置
  11. 匿名函数python_基于python内置函数与匿名函数详解
  12. AttributeError: 'function' object has no attribute 'Document'报错解决
  13. 苹果推出Apple Pay防欺诈功能 目前仅限于Visa
  14. Android:单元测试InstrumentationTestRunner
  15. resiprocate 之repro注册
  16. apollo-配置管理中心-安装
  17. ViewPager轮播图自动无限循环滑动,手指按住停止滑动
  18. 华中科技大学计算机学院任思浩,华中科技大学2018年本科特优生名单
  19. 【Unity Shader】(十) ------ UV动画原理及简易实现
  20. [Scala基础]--Either介绍

热门文章

  1. B站推荐的5个自学网站
  2. 计算机协会社团学年总计划,2017年计算机协会学年工作计划(1500字)
  3. python处理文件常用到的函数
  4. 因果推断dowhy之-401(k)资格对净金融资产的影响
  5. mp4截图 Linux,深度截图 V3.0 发布:Linux 下轻松截图
  6. keil5添加c51芯片包
  7. SECS/GEM300半导体12寸标准通讯设计方案,300mm标准
  8. C# 设置及获取属性备注信息 Description
  9. 写给2018年5月的自己
  10. Codeforces Canda Cup 2016