美文网首页程序猿阵线联盟-汇总各类技术干货程序员
解决安卓系统上,MUI AJAX同步执行无效的方法

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

作者: 七里汀 | 来源:发表于2017-12-27 10:39 被阅读0次

            最近在使用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同步执行无效的方法

        本文链接:https://www.haomeiwen.com/subject/xlwygxtx.html