本人使用ajax对后台数据库进行较长时间操作,为了给用户一个等待提示,避免重复操作,所以想添加一个提示框。
但是不论用那种dialog都不能弹出来,debug测试,单步运行则可以显示。所以怀疑是ajax时把前面的操作覆盖掉了。
后来查阅发现是由于ajax中设置的参数, async: false, //true为异步操作,false为同步操作
这里为同步操作引起的。修改为异步即可解决问题。
然后在在调用ajax前面弹出对话框可生效。
/*
请求Ajax 带返回值。 远程调用用。
重写是由于原本为同步操作,此处构造异步函数
解决调用ajax时,显示提示信息
*/
function getAjaxJsonTrue(url, postData, callBack)
{
//alert("OK:"+ url);///pite
$.ajax({
type: 'POST',
dataType: "json", //json--返回json数据类型;xml--返回xml
url: RootPath() + url,//
data: postData,
processData : true, //contentType为xml时,值为false
cache: false,
async: true, //true为异步操作,false为同步操作
scriptCharset: 'utf-8',
success: function (data) {
callBack(data);
},
error: function (data) {
//把array 或者 object类型的数据转换为JSON格式
//alert("error:" + JSON.stringify(data));//将 JavaScript 值转换为 JavaScript 对象表示法 (Json) 字符串。
Loading(false);
}
});
}