`
objectbean
  • 浏览: 14630 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
社区版块
存档分类
最新评论

8.Ext.Ajax

    博客分类:
  • Ext
阅读更多

Ext.Ajax的基本用法

如下所示:

  1. var proxy = new var ds = Ext.Ajax.request({  
  2.     url: '07-01.txt',  
  3.     success: function(response) {  
  4.         Ext.Msg.alert('成功', response.responseText);  
  5.     },  
  6.     failure: function(response) {  
  7.         Ext.Msg.alert('失败', response.responseText);  
  8.     },  
  9.     params: { name: 'value' }  
  10. });  



这里调用的是Ext.Ajax的request函数,它的参数是一个JSON对象,具体如下所示。
> url参数表示将要访问的后台网址。
> success参数表示响应成功后的回调函数。

上例中我们直接从response取得返回的字符串,用Ext.Msg.alert显示出来。
> failure参数表示响应失败后的回调函数。

注意,这里的响应失败并不是指数据库操作之类的业务性失败,而是指HTTP返回404或500错误,请不要把HTTP响应错误与业务错误混淆在一起。
> params参数表示请求时发送到后台的参数,既可以使用JSON对象,也可以直接使用"name=value"形式的字符串。

Ext.Ajax直接继承自Ext.data.Connection,不同的是,它是一个单例,不需要用new创建实例,可以直接使用。
在使用Ext.data.Connection前需要先创建实例,因为Ext.data.Connection是为了给Ext.data中的各种proxy提供Ajax功能,分配不同的实例更有利于分别管理。
Ext.Ajax为用户提供了一个简易的调用接口,实际使用时,可以根据自己的需要进行选择。


Ext.lib.Ajax是更底层的封装

其实Ext.Ajax和Ext.data.Connection的内部功能实现都是依靠Ext.lib.Ajax来完成的,在Ext.lib.Ajax下面就是各种底层库的Ajax了。
如果使用Ext.lib.Ajax实现以上的功能,就需要写成下面的形式,如下面的代码所示:

  1. Ext.lib.Ajax.request(  
  2.     'POST',  
  3.     '07-01txt',  
  4.     {success: function(response){  
  5.         Ext.Msg.alert('成功', response.responseText);  
  6.     },failure: function(){  
  7.         Ext.Msg.alert('失败', response.responseText);  
  8.     }},  
  9.     'data=' + encodeURIComponent(Ext.encode({name:'value'}))  
  10. );  



我们可以看到,使用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吧,它会带给你更多的惊喜。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics