同步请求:
获取所需要的的全部资源。如果访问一个网页,加载所有网页的全部资源
异步请求:
获取指定资源。如果仅仅想要部分资源,进行按需加载。
同步请求优势
1、同步流程对结果处理通常更为简单,可以就近处理。
2、同步流程对结果的处理始终和前文保持在一个上下文内。
3、同步流程可以很容易捕获、处理异常。
4、同步流程是最天然的控制过程顺序执行的方式。
同步请求劣势:
同步的执行效率会比较低,耗费时间
异步的好处:
1、异步流程可以立即给调用方返回初步的结果。
2、异步流程可以延迟给调用方最终的结果数据,在此期间可以做更多额外的工作,例如结果记录等等。
3、异步流程在执行的过程中,可以释放占用的线程等资源,避免阻塞,等到结果产生再重新获取线程处理。
4、异步流程可以等多次调用的结果出来后,再统一返回一次结果集合,提高响应效率。
异步劣势:
请求来的资源需要客户端重新进行渲染
Ajax 是异步的 JavaScript 和 XML
Ajax 是浏览器客户端上的前端技术
异步 和 同步的区别?
同步:可以理解为在执行完一个函数或方法之后,一直等待系统返回值或消息,这时程序是出于阻塞的,只有接收到返回的值或消息后才往下执行其他的命令
异步 :(并发执行)执行完函数或方法后,不必阻塞性地等待返回值或消息,只需要向系统委托一个异步过程,那么当系统接收到返回值或消息时,系统会自动触发委托的异步过程,从而完成一个完整的流程。
经典实例
1. Google 的 auto_complete (输入框的自动补全)
2.Google 的 map (Google地图)
浏览器本身支持多线程并发
Ajax 主要解决的问题:
1.页面的局部刷新问题
2.在网页中并发的发送多个请求