Ajax中的async的取值(异步和同步)

来源:互联网 发布:浙江网络作家协会主席 编辑:程序博客网 时间:2024/06/12 01:02

之前去面试广州科腾公司时,面试官问了一个问题—ajax的async取值的理解。那时候的我可以说是个死菜鸟(现在可能是个半死不活的菜鸟),只是理解取值的字面意思,最后还要面试官给我解释。虽然面试肯定是挂了,但是至少面试官教了我点东西,也不亏了对吧。言归正传了。
ajax的open方法的第三个参数是async的取值,分别有true和false。true表示是异步模式,false表示同步模式。
首先要明确一点,ajax在全局环境中是异步模式的 ,async讲的是ajax请求内部的同异步。
对于同步模式,如果ajax发出请求(send方法调用后),后续还有代码执行,此时如果服务器响应不及时(也就是此时ajax的请求代码还没有全部执行完成),后续的代码不会执行(此时页面出现假死状态,此时也不用考虑代码的执行顺序)。此时就会出现阻塞状态。
对于异步模式,一般多用异步模式。如果ajax执行完send后,后续还有代码需要执行,此时服务器响应不够及时,后续的代码还是会继续执行。不会出现阻塞现象
既然异步比较好,那为什么会有同步这个选项呢。这也是那个面试官问我的问题之一。答案是,因为如果ajax执行完send后,后续的代码是有关于响应结果的处理,那如果是异步请求,则如果此时服务器的响应结果还没回来,那么后续有关于响应结果的处理就会出现错误(return null)。此时是一定要用同步的。

—–有不同意见欢迎留言改正000000

原创粉丝点击