情况:a()和b()排列,有时候b()内部先执行
function a(){
$.ajax({})
};
function b(){
$.ajax({})
};
a();
b();
原因:因为ajax默认是异步的
a()和b()执行的先后顺序,最后取决于他们内部请求的url何时返回数据,网络延迟有影响,先后顺序。
解决方案:
方案一:将b()放入a()内请求回调内
function a(){ $.ajax({ url:"this is url", success:function(){ b(); } }) }
,也就是说a()内请求完成在进行b();
方案二:将a()和b()内ajax中添加async:true,
function a(){ $.ajax({ url:"this is url", async:true }) }
即同步执行,执行完成a(),再执行b();