利用向服务器请求数据会出现请求超时的情况,一般若是10S之后还没有响应,就会定义为超时,那么出错了的时候,这10秒钟不可能给用户白屏,即便是请求成功之后打开一个新页面,那么这个间隔时间也给用户响应。
但是mui 的ajax并没有实现类似jquery的ajaxStart 和 ajaxStop方法,然而在移动端上这两个方法还是比较常用的,比如在向后台提交数据的时候显示loading的图标,防止用户的第二次提交,并在数据提交完成时取消loading动画,现在,mui提供了两个类似方法,但是文档中并没有提到(mui),并且HBuilder生成的代码块也并没有这两个方法。真是需要好好完善。
好在,mui提供了beforeSend和complete这两个方法,功能类似于jquery的ajaxStart 和 ajaxStop方法,所以大家现在可以使用。
var mask=();//遮罩层
mui().on('tap','#login',function(){
('http://127.0.0.1/login',{
data:{
userName:userName,
userPwd:userPwd
},
dataType: 'json', //服务器返回json格式数据
type: 'post', //HTTP请求类型
timeout: 10000, //超时时间设置为10秒;
beforeSend: function() {
(title, options);
mask,show();//显示遮罩层
},
complete: function() {
();
();//关闭遮罩层
},
success: function(data) {
//服务器返回响应,根据响应结果,分析是否登录成功;
if(data=='1'){
('登录成功');
}
},
error: function(xhr, type, errorThrown) {
('服务器连接超时,请稍后再试’);
}
}
});