假如你现在还在为自己的技术担忧,假如你现在想提升自己的工资,假如你想在职场上获得更多的话语权,假如你想顺利的度过35岁这个魔咒,假如你想体验BAT的工作环境,那么现在请我们一起开启提升技术之旅吧,详情请点击
一,代码
$(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就是局部刷新技术,在不加载整个页面的情况下,提高客户体验度。试想,什么时候用户才会在浏览器停下手下的事情,来等待服务器的回应,只能是服务器回应的速度很快,也就是说,客户端向服务器提交的数据量很小。这时候用同步,反这,其他时候用异步。