最近在写ajax请求后台来过程中layer等待层的功能时遇到layer的加载框总是在请求完后才出现的问题。

后来找到原因是因为ajax请求设置为同步的,由于js是单线程的导致程序先执行了后台请求然后请求完后才能够执行到beforeSend方法导致的。

js阻塞问题


后续把ajax改为异步请求则成功了。

function initpure(){
	var index;
	$.ajax({
        url: ctx + '/kit/dba.do',
        type: "POST",
        async: true,//此处要求是异步的,否则showLoad()出不来。
        dataType: "json",
        data: {method: 'initpure'},
        beforeSend:function(){
        	index = LayerTool.showLoad();
        },
        complete:function(){
        	LayerTool.closeLayer(index);
        },
        success: function (data) {
        	if("success" == data.result){
        		LayerTool.alert("恭喜:成功初始化纯净框架!");
        	}else{
        		LayerTool.alert("抱歉:初始化异常,请检查配置是否正确!");
        	}
        }
    });
}





作者:星辰 时间:2017-02-10 浏览 1487评论 0 赞 0砸 0 标签: layer js plugins
评论
还可以再输入500个字

请您注意

·自觉遵守:爱国、守法、自律、真实、文明的原则
·尊重网上道德,遵守《全国人大常委会关于维护互联网安全的决定》及中华人民共和国其他各项有关法律法规
·严禁发表危害国家安全,破坏民族团结、国家宗教政策和社会稳定,含侮辱、诽谤、教唆、淫秽等内容的作品
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·您在NoteShare上发表的作品,NoteShare有权在网站内保留、转载、引用或者删除
·参与本评论即表明您已经阅读并接受上述条款