function pay(){
showToast();//显示遮罩
$.ajax({
type:'post',//可选get
url:url,
data:data,
dataType:'json',
async:true ,
success:function(data,status){
hidenToast();//隐藏遮罩
},
error:function(xhr,s1,s2){
hidenToast();//隐藏遮罩
}
});
}
function showToast(){
div.show();
}
function hidenToast(){
div.hide();
}
这段代码在async这个属性改为true异步时 遮罩是可以弹出 。但是改为false 同步时 遮罩无法弹出 , 但是debugger 调试时 可以弹出 。虽然实现了效果 但是有点理解不了 。求指教
入手JS这段时间各种奇葩bug都遇到了,感觉JS每一步都得处理好,必须想明白才可以,要不然你开发的东西会是一团渣渣。
用户添加页面时有时候需要加载已有数据,但当你未加载完成就关闭添加页面窗口就会出现报错,提示“过快操作会导致页面异常”,经查阅和请教后,只需要在ajax的内部加一句 async: false,在查阅一些资料才知道,jquery里面async默认是true,就意味着是异步加载......
答案就在这里:JQuery async同步异步问题
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?
同步会挂起其他js代码执行,你的动画什么的都没有反应,如果是显示遮盖层直接显示而不是setTImeout之类动态显示出来什么的应该没有问题,如果淡入淡出之类的会被挂起执行