AJAX根据async的值分为同步(async = false)和异步(async = true)两种执行方式; W3C教程中推荐异步执行; 服务器
让我们区分一下同步和异步: 异步
异步:异步模式下,我们使用AJAX发送请求后,可能会有代码需要执行。 此时服务器可能因为各种原因还没有响应我们的请求,但是因为我们使用异步执行,所以所有包含AJAX请求代码的函数中剩余的代码都会继续执行。 如果我们把请求结果交给另一个JS函数来处理,那么就像两个线程同时执行一样。 异步
同步:在同步模式下,我们使用AJAX发送请求后,仍然有代码需要稍后执行。 我们也将服务器响应交给另一个JS函数处理,但是此时的代码执行状态是:服务器没有响应。 或者当处理响应结果的JS函数尚未处理完成时,包含请求代码的函数的剩余代码无法执行。 就像单线程一样,发出请求后就进入阻塞状态,剩余的代码直到达到阻塞状态才会继续执行。
如何选择同步或异步模式? 要回答这个问题,我们可以通过以下可能的问题来回答:spa
当我们发送完AJAX请求后,我们还需要继续处理服务器的响应结果。 如果我们此时使用异步请求模式,并且不将结果的处理交给另一个JS函数。 这时候可能会出现这种情况:异步请求的响应还没有到达,而函数已经执行完语句了,结果会是一个空字符串。