ajax异步的问题,(主要解决有时候前台打断点和不打断点结果不一样的问题,一般情况下是存在异步的问题)...

假如你现在还在为自己的技术担忧,假如你现在想提升自己的工资,假如你想在职场上获得更多的话语权,假如你想顺利的度过35岁这个魔咒,假如你想体验BAT的工作环境,那么现在请我们一起开启提升技术之旅吧,详情请点击http://106.12.206.16:8080/qingruihappy/index.html

 

一,代码

$(function() {
$(".btn-submit").click(function() {
if(!checkData()){
return;
}
var url = '${rc.contextPath}/wxFfanApply.htm?method=save';
var param = $("#submitForm").serialize();
var aa=$.ajax({
url: url,
type: 'POST',
dataType: 'json',
data: param,
async: true,
success: function(data){
if ("000" == data.code) {
alert("保存成功");
var url = '${rc.contextPath}/wxFfanApply.htm?method=preToMain';
document.getElementById('submitForm').action = url;
document.getElementById('submitForm').submit();
} else {
alert("保存出现异常,请重试");
}
}
});
console.log(aa.responseText);
alert("66666"+aa.responseText);//主要是用于后台返回的json 格式的数据。
});
});
</script>

 

二,分析

2.1,异步

async: true,

这时候会出现

 

undefined的结果因为这时候这时候是因为,设置的是异步的代码不等服务器返回就开始往下执行了。所以没有获得它的值。然后在弹出来

 

2.2,同步:

async: false,

这时候会先弹出来

然后在弹出来

这是一位同步的话会一步步的操作。

2.3,断点问题,网上来的

如图,有断点时能够得到变量json的值:

但取消断点之后怎么json就是undefined了?

 

 

调用$.ajax的时候,没有设置是否同步,一般情况下是异步,也就是说数据还没有返回,代码就已经往下面走了,断点的话默认是同步的,决解:
$.ajax( {
async : false, 增加这一个设置!!
url : url,
data : params ,
success : function (result) { XXX },
error:function(){ return { XXX }
});

 

2.4,什么时候用同步什么时候用异步

 

 

ajax就是局部刷新技术,在不加载整个页面的情况下,提高客户体验度。试想,什么时候用户才会在浏览器停下手下的事情,来等待服务器的回应,只能是服务器回应的速度很快,也就是说,客户端向服务器提交的数据量很小。这时候用同步,反这,其他时候用异步。

 

假如你现在还在为自己的技术担忧,假如你现在想提升自己的工资,假如你想在职场上获得更多的话语权,假如你想顺利的度过35岁这个魔咒,假如你想体验BAT的工作环境,那么现在请我们一起开启提升技术之旅吧,详情请点击http://106.12.206.16:8080/qingruihappy/index.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值