EasyUI message.confirm +AJAX 等待效果

  function onWorking() {
            var Tname = $("body"); 
              $("<div class=\"datagrid-mask\"></div>").css({ display: "block", width: "100%", height: $(window).height() }).appendTo(Tname);
            $("<div class=\"datagrid-mask-msg\"></div>").html("正在處理,請稍候。。。").appendTo("body").css({ display: "block", left: ($(document.body).outerWidth(true) - 190) / 2, top: ($(window).height() - 45) / 2 });
        }
        function WorkEnd() {
            $(".datagrid-mask").remove();
            $(".datagrid-mask-msg").remove();
        }
這是等待畫面的做法
 $.messager.confirm("操作提示", "您確定要匯入 [" + fname + "] 嗎?", function (data) {
        if (data)
        {
             Ajax_PB(2, fname);
        }
    });

Ajax_PB
onWorking()
 $.ajax({
        async: false,
....
這邊本來是想說 先跑 等待畫面
用 同步 等server 處理完 再繼續往下
沒想到測試結果
是 onWorking() 也一樣等 Ajax回來才動作
這樣有做跟沒做一樣 效果出不來
一定要用 非同步做法 效果才出來
所以改用 $.post  不用寫的 那麼複雜
onWorking()
 $.post("url", { cmd_id: cid, fname: fname  })
        .done(function (data) {
            WorkEnd();

這樣效果才會出來
************************************************************
上述的方法有個問題 框大小跟字型大小對不上
所以又找了個新方法
function NowLoading() {
    //open遮罩
    $.messager.progress({
        //title: 'Please waiting',
        //msg: '正在處理,請稍候。。。',
        text: '正在處理,請稍候。。。'
    });
}
function EndLoading(){
    //close遮罩
    $.messager.progress('close');
}

















留言

熱門文章