关于Ajax请求中的async:false/true的区别

JQuery的Ajax()方法相信各位小伙伴都用过,但前天博主对ajax返回的数据赋值变量,然后控制台打印,始终显示变量undefined。被这个问题困扰了好长时间,最后才发现问题是归结于async这一个参数上面。下面详细说一下Ajax请求中的async:false/true,即异步请求与同步请求,这两点究竟有啥区别!

参数async有两个类型,false/true,对应的就是同步请求与异步请求。默认类型为true,即默认异步请求,当ajax()方法执行之后,对于ajax()后面的方法也会继续执行,相当于同时进行两个线程,执行过程中,这两个线程互不干扰,对应的,之间的参数、变量不会建立联系!但是当其类型为false时,为同步请求,对于ajax()方法与其之后的代码程序,只能挨个进行,即同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

理清楚上面的区别之后,那么博主遇到的问题也就解决了,很简单,只需要将async默认的类型true修改为false即可,执行同步请求,请求完成之后再做return,这样就能获取对应的变量值。

最后再贴出一份详细的代码供大家参考。

本文由 有花不见叶 原创发布于光阴小栈,未经许可,禁止转载。

共有 0 条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据