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');
}
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');
}
留言
張貼留言