同步请求和异步请求的区别,ajax异步请求如何理解

同步请求和异步请求的区别

先解释一下同步和异步的概念 
同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据包的通讯方式。 
异步是指:发送方发出数据后,不等接收方发回响应,接着发送下个数据包的通讯方式。

同步通信方式与异步通信的概念 
同步通信方式要求通信双方以相同的时钟频率进行,而且准确协调,通过共享一个单个时钟或定时脉冲源保证发送方和接收方的准确同步,效率较高; 
异步通信方式不要求双方同步,收发方可采用各自的时钟源,双方遵循异步的通信协议,以字符为数据传输单位,发送方传送字符的时间间隔不确定,发送效率比同步传送效率低。

使用者用于调用WEB服务的通信选择:同步或异步。 
使用者可以同步或异步实现服务调用。从使用者的观点来看,这两种方式的不同之处在于: 
同步——使用者通过单个线程调用服务;该线程发送请求,在服务运行时阻塞,并且等待响应。 
异步——使用者通过两个线程调用服务;一个线程发送请求,而另一个单独的线程接收响应。 
术语同步 和异步 经常与顺序 和并发 混淆了。后面的这两个术语与执行单独的任务必须遵循的顺序有关,而同步和异步 与线程执行单个任务(如调用单个服务)的方式有关。理解同步和异步调用之间的不同的一种很好的方法是考虑崩溃恢复的后果: 
同步——如果使用者在服务运行的过程中阻塞时崩溃了,当它重新启动时,将无法重新连接到正在进行的调用,所以响应丢失了。使用者必须重复调用过程,并且期望这次不会崩溃。 
异步——如果使用者在发送了请求之后等待响应时崩溃了,当它重新启动时,可以继续等待响应,所以响应不会丢失。 
崩溃恢复不是同步和异步调用之间的唯一不同,但是如果您尝试确定某个调用采用哪一种方式,请考虑每一种调用如何处理崩溃恢复,这通常可以给您一个很好的答案. 
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 
没有分啊???

AJAX的核心是客户端的JavaScript程序能够实现异步执行,异步执行是相对与同步执行的.同步执行意味着代码必须顺序执行,在此给你举个例子,你就会明白了!

Line_1
Line_2
Line_3

Line_1必须执行完后,才能执行Line_2.Line_1可能调用的是一个函数,有可能这个函数很复杂,需要运行几小时能才运算完毕,而这个时候,你必须等,等到Line_1完全执行完毕,你才能执行Line_2,同理,Line_3也是!

异步则不同,还是假定Line_1,要调用的函数要执行几个小时,而这个时候,你就不必要等Line_1执行完毕才去执行Line_2,同理,Line_3也是!

异步执行中有一个非常特殊的功能,那就是回调.同样是上面的那个例子,Line_1在调用函数时可以指定函数执行完后要调用的另一个函数.当过了几个小时后,函数执行完毕了(当然这中意也有可能会出现错误),它会发出一个回调命令,这个命令会调用指定的另一个函数,从而通知程序"执行完了".如果可以,还会传递一些参数,这些参数可能就是几个小时以来运算的结果!

不知道我这样讲你有没有明白!至于AJAX怎么用,如何去解决AJAX出现的问题(比如书签问题,后退按钮的问题等),你可以自己去找这方面的资料看看

上一篇:python中如何添加模块导入路径?


下一篇:Hyperledger Fabric Endorsement policies——背书策略