首页 > Web开发 > 详细

ajax 遮罩层总是在执行完后显示或显示不出来

时间:2020-12-05 17:43:10      阅读:47      评论:0      收藏:0      [点我收藏+]

在前端ajax代码中,遇到一个问题 :遮罩层(showMask)总是在执行完所有代码后才显示,或着是压根显示不出来; 原来是 异步提交 问题一定要注意

改之前 ajax如下:

            if(Is_Login()){
                   showMask("#mask", ".copy_div");
                   $.ajax({
                        type: "post",
                        async: true, 
                        url: url_98 + "FileServlet.do",
                        xhrFields: {
                            withCredentials: true
                        },
                        crossDomain: true,
                        data: {
                            "method":"cmpPrint",
                            "yydh": yydh,
                            "copy": "1" 
                        }
                   }).done(function (data) {
                        closeMask("#mask",".copy_div");
                        console.log("cmpPrint:" + data);  
                        var json = JSON.parse(data);
                        //*********获取地址
                        copyPDF = json.path; //pdf地址 
                        var aux = document.createElement("input"); 
                        aux.setAttribute("value", copyPDF); 
                        document.body.appendChild(aux); 
                        aux.select();
                        document.execCommand("copy"); 
                        document.body.removeChild(aux);    
                        Toast("复制成功", 3000);                    
                        //alert("复制成功!");
                        //*********获取地址
                        if(json.status == "ok"){
                            //阻止事件冒泡
                            stopBubble(event);
                        }else{
                            Toast("系统错误,请联系管理员", 3000);
                            stopBubble(event);
                        }
                        
                    }).fail(function (data) {
                        closeMask("#mask", ".loginLoad");
                        showMask("#mask", ".errorDiv");
                        $(".errorDiv>p").text("抱歉,服务器错误");
                        $(".alertImg").attr("src", "images/alert.png");
                        //点击提示框关闭按钮
                        $(".closeBtn").click(function () {
                            //关闭遮罩层和提示框
                            closeMask("#mask", ".errorDiv");
                            closeMask("#mask", ".loginLoad");
                        });
                   });
            }

 

把 同步提交 改作 异步提交 即可。

ajax 遮罩层总是在执行完后显示或显示不出来

原文:https://www.cnblogs.com/sunxiaoronga/p/14089911.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!