解决安卓系统上,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){

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

    });         


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



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值