ExtJs ajax.request 的变化

//这段请求 有点老了, 有很多缺点
Ext.lib.Ajax.request(
								'POST',       //这里估计要改改
								contextPath+'/xg/xszz/zxdkbAction.do?method=addSqs&sqs='+sqs,
								{
									success:function(response){
										var rs = Ext.decode(response.responseText);
										if(rs.success){
											location.href=contextPath+rs.message;
										}else{
											location.href=contextPath+rs.message;
										}
									},failure:function(){
										Ext.Msg.alert("提示","服务器连接失败!");
									}
								}
							);
 
 
Ext.Ajax.request({
        method: 'POST',
        url: contextPath+'/xg/xszz/zxdkbAction.do?method=addSqs',
        params:{
         sqs:sqs
        },success: function(response){
         var rs = Ext.decode(response.responseText);
         location.href=contextPath+rs;
        }, failure: function(response){
         var rs = Ext.decode(response.responseText);
         location.href=contextPath+rs;
        }
 });
 location.href=contextPath+"/xg/xszz/zxdk/zxdk_pksdjb.html";
 
 
 
 
 
 //看看下面这个老标准吧
Ext.lib.Ajax.request(
'POST',
'07-01txt',
{success: function(response){
Ext.Msg.alert('成功', response.responseText);
},failure: function(){
Ext.Msg.alert('失败', response.responseText);
}},
'data=' + encodeURIComponent(Ext.encode({name:'value'}))
);
 

我们可以看到,使用Ext.lib.Ajax时需要传递4个参数,分别为method、url、callback和params。它们的含义与Ext.Ajax中的参数都是一一对应的,唯一没有提到过的method参数表示请求HTTP的方法,它也可以在Ext.Ajax中使用method:'POST'的方式设置。

相对于Ext.Ajax来说,Ext.lib.Ajax有如下几个缺点。

参数的顺序被定死了,第一个参数是method,第二个参数是url,第三个参数是回调函数callback,第四个参数是params。这样既不容易记忆,也无法省略其中某个不需要的参数。Ext.Ajax中用JSON对象来定义参数,使用起来更灵活。

在params部分,Ext.lib.Ajax必须使用字符串形式,显得有些笨重。Ext.Ajax则可以在JSON对象和字符串之间随意选择,非常灵活。

比与Ext.Ajax相比,Ext.lib.Ajax的唯一优势就是它可以在EXT 1.x中使用。如果你使用的是EXT 2.0或更高的版本,那么就放心大胆地使用Ext.Ajax吧,它会带给你更多的惊喜。



你可能感兴趣的:(json,function,服务器,url,ExtJs,callback)