Ajax同步和异步

Ajax在默认情况下是异步执行的,即其属性 async: boolean (是否异步);

同步和异步的区别:

同步: Client 向 Server请求数据,直到该部分数据返回时,Client在请求返回值后的相应程序队列才会按顺序执行,在此期间,Client处于假死状态;

异步:Cilent 向 Server请求数据,Cilent处于活动状态,程序队列继续执行,在Server将数据返回后,相应的Cilent响应会插入到程序序列中.

eg: A,B[Cilent向Server发送请求],C[Server向Client返回请求结果],D,E (其中A,D,E为顺序执行的Client程序);

同步过程: A -- B -- C -- D -- E; D会在C后执行,完全按照顺序;

异步过程: A -- B -- D -- E --C (可能的结果); 在B发送请求执行后,D不会等待,而是直接在B后执行,C的结果返回可能在D后,也可能会在D前,是在有结果后插入程序队列;

所以当涉及到Cilent中的其他程序队列可能使用到Ajax请求的Server数据时,建议使用同步方式;因为使用异步可能会有在队列其他程序使用Server数据时,该数据尚并返回,造成未定义undefine错误.

原文地址:https://www.cnblogs.com/sknn/p/8041552.html