ajax异步的加深理解

时间:2023-03-09 14:59:38
ajax异步的加深理解

过去印象中的ajax的异步操作,一直还居然在$.ajax函数内部的异步,真是大错特错,实际的异步操作,是针对整个js文件来的。

今天总算意识到了,实际情况如下:

$(function(){
//【弹框提示层】初始化
$.like.initAlertMsgDiv();
//判断账户是否创建钱包
isExistWallet();
//钱包信息显示
showWalletInfo();
//加载最近交易记录
PageClick(1, 10, 3);
。。。。。

首先判断账户是否创建钱包,没有创建的话,及时创建空钱包。下一步是加载钱包中的信息。

加载钱包信息函数中有钱包非空验证。刚开始时,isExistWallet()函数中的ajax操作时异步的,导致没有来的及创建钱包,就执行钱包信息操作,从而报钱包为空错误。

所以此时ajax应改为同步操作,判断账户是否创建钱包代码如下:

function isExistWallet(){
//ajax查询
$.ajax({
url: $.like.getRootURL()+"/wallet/isExistWallet.htm",
type: "POST",
data: {
"type":type
},
dataType: "json",
async:false,
success: function(data) {
var res = data.res;
var msg = data.msg;
if(res==2){//登录超时
$.like.alert_Msg(msg, 1, $.like.getRootURL()+'/agent/home.html');
}else if(res!=0){
$.like.alert_Msg(msg, 0, '');
}
}
});
}

async:false 就可以搞定了。