新手小坑:Ajax带来的问题

问题描述

Ajax作为可以进行异步传输的技术,让许多要使用到前后台数据交换的功能变得简单。但是新手也会遇到一个小坑,而且正是来自“异步”。
代码就不贴出来了,简单描述一下。使用框架tp5.1,用jq写了一段功能。实际使用功能时,特效出现的顺序有误,控制台没有报错。

解决

经过断点排查,发现是代码运行的逻辑顺序有问题。而问题的核心就是中间的一段ajax代码。
由于ajax代码是异步实现的,当后台还没有返回值时,前台继续运行ajax之后的jq代码。等后台返回值时,黄花菜都凉了。所以要解决问题只能去掉ajax代码运行的异步性,tp5.1中去掉异步性的代码如下:
$.ajaxSettings.async = false;

该代码写在ajax的代码前就能去掉ajax的异步性,从而解决问题。

思考

ajax的异步性确实是它的优势之一,但是其实把它只当成一个前后台数据的桥梁也是不错的选择。而且在去掉异步性后,某些场景可以大大提升稳定性,防止某些皮孩子或者暴躁老哥疯狂点击按钮后导致崩溃。
在使用了ajax的jq代码中,如果出现功能逻辑顺序错误,可以朝这个方向进行排查。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值