日期:2014-05-16  浏览次数:20462 次

Ext js Ext.Ajax.request同步和异步问题
Ext.Ajax.request 默认是异步的,所以在下载的开发包中,无论怎么增加参数,async,sync都是无效的.目前需要用到同步调用.后台获取数据,填充grid.同时最上面的按钮也要后台获取后动态生成。这就要求按钮生成时,请求不能返回.
参考了很多网上总结的,有些是要更改底层代码的,最怕改来改去,有时候一个不同版本都会折腾死人,最后 参考了只要引入一个 js.然后就能在Ext.Ajax.request中设置async:false.发起同步请求.

在加载页面加入ext-basex.js.即可:
  Ext.Ajax.request({
				url : './dept/getCurrentWeek.do',
				params : '',
				method : 'POST',
				async: false,
				success : function(response, options) {
					var currentWeek = response.responseText;
					currentWeek=parseInt(currentWeek);
					var arrays = new Array(4);
					for (var i = 0; i < 4; i++) {
					arrays[i]=new Ext.Toolbar.Button({text :'W'+(currentWeek+i) ,iconCls : 'icon-home',listeners : {
				"click" : function() {
					var buttonText=this.getText();
					gridObj.store.reload({params:{ currentWeek:buttonText,deptId:Ext.getCmp('deptColumnTree').getSelectionModel().getSelectedNode().attributes.id}});
				}
			}});
					}
					tbr.add(arrays);
					tbr.addFill();
				},
				failure : function() {
					Ext.Msg.alert("提示信息", "按钮加载失败,请稍后重试!");
				}
			});
};
1 楼 冷月宫主 2012-04-28  
超无耐的是此方在不被Firefox支持!
2 楼 westsince2001 2012-05-04  
冷月宫主 写道
超无耐的是此方在不被Firefox支持!

兄台再检查下哦,这个是IE与FF版本都支持的。当然是在11年5月左右的FF。现在新版本不太清楚了。