mui开发APP教程之mui.ajax请求后出现“加载中”

来源:互联网 发布:淘宝口红店铺推荐知乎 编辑:程序博客网 时间:2024/05/18 13:43

利用mui.ajax向服务器请求数据会出现请求超时的情况,一般若是10S之后还没有响应,就会定义为超时,那么出错了的时候,这10秒钟不可能给用户白屏,即便是请求成功之后打开一个新页面,那么这个间隔时间也给用户响应。

但是mui 的ajax并没有实现类似jquery的ajaxStart 和 ajaxStop方法,然而在移动端上这两个方法还是比较常用的,比如在向后台提交数据的时候显示loading的图标,防止用户的第二次提交,并在数据提交完成时取消loading动画,现在,mui提供了两个类似方法,但是文档中并没有提到(mui),并且HBuilder生成的代码块也并没有这两个方法。真是需要好好完善。

好在,mui提供了beforeSend和complete这两个方法,功能类似于jquery的ajaxStart 和 ajaxStop方法,所以大家现在可以使用。

var mask=mui.createMask();//遮罩层mui(documengt.body).on('tap','#login',function(){    mui.ajax('http://127.0.0.1/login',{    data:{        userName:userName,        userPwd:userPwd    },    dataType: 'json', //服务器返回json格式数据        type: 'post', //HTTP请求类型        timeout: 10000, //超时时间设置为10秒;    beforeSend: function() {        plus.nativeUI.showWaiting(title, options);        mask,show();//显示遮罩层    },    complete: function() {        plus.nativeUI.closeWaiting();        mask.closed();//关闭遮罩层    },    success: function(data) {        //服务器返回响应,根据响应结果,分析是否登录成功;         if(data=='1'){            mui.alert('登录成功');        }    },    error: function(xhr, type, errorThrown) {        mui.alert('服务器连接超时,请稍后再试’);    }}});
1 0