原因:浏览器引擎分为 js引擎和渲染(UI)引擎。js引擎负责解析js脚本代码,渲染引擎负责渲染页面。当ajax设置为同步时,由于js线程和UI线程是互斥的,当执行ajax的时候,js线程耗时操作,此时会阻塞UI线程,当ajax执行完成的时候才会显示遮罩层。
解决方案:
设置async为true,异步去访问。
function test(){
$('#loading').show(function () {
$.ajax({
async: false,
url:'xxxxxx',
type:'post',
data:{},
dataType:'json',
success:function(data){
}
});
})
}