解决安卓系统上,MUI AJAX同步执行无效的方法

        最近在使用MUI重构之前的一款APP,发现在使用mui ajax---getJson的时候发现小米、安卓的系统上设置 async = false后,回调函数success调用是同步的。这里吐槽一下,安卓手机有一个缺点就是参差不齐。

       本想着写个通用的ajax函数,现在不得不为每个业务函数写单独的success函数,中间我也考虑ajax函数执行后延迟执行下句,不过没什么作用。最后想到了一个办法,在这里写出来,给大家参考一下。

不知道大家有没有碰到类似的问题,有没有什么更好的解决办法?

pileState: function(url, cpid,callback) {

var mask = mui.createMask();

url = url + "scanCharge/isChargePile";

window.res = 0;

mui.ajax(url, {

data: {

deviceId: cpid

},

dataType: "JSON",

type: "GET",

crossDomain: true,

async: false, // 使用同步操作,无效T-T

beforeSend: function() { 

        plus.nativeUI.showWaiting("加载中...", {}); 

        mask.show();//显示遮罩层 

    }, 

  complete: function() { 

        plus.nativeUI.closeWaiting(); 

        mask.close();//关闭遮罩层

        callback(window.res);

    }, 

success: function(data) {

window.res = data.detail;

},

error: function() {

window.res = false;

}

});

在调用的时候,传入匿名函数。

Pile.pileState(url,cpid,function(e){

//这里拿到返回的参数。

});         

自己的土方法,希望可以给大家带来一定的参考。如果有更好的办法,希望大家可以留言一下@~@

你可能感兴趣的:(解决安卓系统上,MUI AJAX同步执行无效的方法)