记录日常所遇问题第一天(初识ajax异步、同步)

初识ajax异步、同步

今天在做一个关于数据加载和呈现的工作时,遇到了一个让我很迷惑的问题!
问题:(1)页面初始化时,我便对一个变量赋了值
在这里插入图片描述
(2)定义了一个方法QureeyAddressInfo方法,方法中使用ajax获取后台数据,并且对AddressInfo变量赋值。
在这里插入图片描述
(3)定义了一个click事件,在事件中我需要使用到AddressInfo变量,所以我在其中调用了QureeyAddressInfo方法,可以看到在调用完方法之后,我还进行了控制台打印,然后我便发现了错误,打印出来的竟然还是“123”,经过检查发现,QureeyAddressInfo方法中,对AddressInfo的值的改变,在click事件中,没有起作用,获取到的AddressInfo值还是和初始化的值一样,但是不能说明在QureeyAddressInfo的赋值,没有起到作用。起初我还以为是变量作用域的问题,我尝试性的进行了定义变量的位置调整,但是没有丝毫效果。在这里插入图片描述
解决办法:经过询问项目组中的老师以及查阅相关资料得知,该问题涉及到了ajax的异步与同步问题。采用异步请求的方式时:当ajax发送请求后,在等待server端返回的这个过程中,前台会继续 执行ajax块后面的脚本,直到server端返回正确的结果才会去执行success。
真相大白:click事件在server端还没有返回结果前便执行了console.log及之后的语句,这时AddressInfo的值还没有改变,所以打印出来的为123
相关链接:Ajax同步和异步的区别(描述很清晰)

然后我改变了ajax的请求方式,改为了同步,如图:
在这里插入图片描述
完美解决相关问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值