过去印象中的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 就可以搞定了。