这个不大可能吧;“使用async : false,但Ext.LoadMask也显示出来
”相当于你现在的要求是回调函数和你调后台函数同步执行。
”相当于你现在的要求是回调函数和你调后台函数同步执行。
解决方案 »
- 页面大小改变执行特定函数
- 表格特效,师傅请进来看看!
- 求幻灯片特效的代码!要带上一张,下一张的那种!!
- 怎样在用JS修改HTML中加载的XML文件名称?
- 頁面的Loaded狀態
- 惊讶的发现,原来javascipt不怎么难,以前一点也没学过,一个星期的煎熬还是把任务完成了,散分
- 请问怎样禁止窗口的最大化按钮?
- 我的程序那里错了
- 关于csdn文档中心在线编辑器的一个问题,请教高手!
- easyui tree异步加载子节点全选问题
- jquery---$( "#id" ).autocomplete为什么要重新进入一下该控件才执行这个方法
- struts2 中用到fckeditor整合webEQ整合已经完毕,但是struts2那面接收不到webEQ的数学公式..!
比如可以改为这样。Ext.Msg.wait('正在提交数据……', '请稍候', {
animate : true
});
Ext.Ajax.request({
callback :fucntion(){
Ext.Msg.hide();
-- 自己的其他业务代码
}
-- 其他业务代码
});
不知楼主用的那个Ext的版本,据我所知Ext3.x和4.x中的Ajax都没有async配置
用的就是Ext4,async是可用的,同步请求已经成功了,因为我要在请求成功之后获取其结果值,再返回其结果,所以一定要async,不然返回结果不是请求成功后的结果的,完整代码如下function changeVersion(tree, newRecord, oldRecord){
//debugger;
var versionId = tree.getSelectionModel().getSelection()[0].get('nodeValue');
var roleId = Ext.get("roleId").getValue();
var changeMask = new Ext.LoadMask(Ext.getBody(), {
msg : "Changing, please wait..."
});
changeMask.show();
var msgDiv = jQuery("#msgContent");
var requestConfig = {
url :'common/changeDatabase!changeDatabase.action',
method: 'POST',
params : {
versionId: versionId,
roleId: roleId,
versionName: newRecord.get("text")
},
async : false,
callback : function(options, success, response){
changeMask.hide();
changeMask.destroy();
var changeDbResult = Ext.JSON.decode(response.responseText);
if(changeDbResult && changeDbResult.result){
if(changeDbResult.result == 'success'){
msgDiv.attr("style", "color:green");
msgDiv.html("Change version success");
oldRecord = newRecord;
} else {
msgDiv.attr("style", "color:red");
msgDiv.html("Change version failed");
}
// 切换版本消息框5秒后逐渐消失
msgDiv.fadeOut(5000);
}
}
}
Ext.Ajax.request(requestConfig);
return oldRecord;
};
我要的就是同步执行的,同步的时候就是Ext.LoadMask显示不出来,想要的效果是请求前显示Ext.LoadMask,请求完成后,就隐藏,并且返回想要的结果值给其调用的方法,不同步的话,其结果不是请求后的结果哦
setTimeout(function () {
Ext.Ajax.request({});
},1000);
Ext.getBody().unmask();
这里面。原因的话可能就是在同步请求后页面不能交互了,遮罩层效果还没出来