Ext.data.DataProxy
數(shù)據(jù)代理類(lèi)是一個(gè)純虛類(lèi),主要用于生成Ext.data.Record對(duì)象,沒(méi)有公開(kāi)的屬性和方法,只是歸定子類(lèi)需要處理三個(gè)事件
beforeload : ( Object This, Object params )
load : ( Object This, Object o, Object arg )
loadexception : ( Object This, Object o, Object arg, Object e )
事實(shí)上參數(shù)也是子類(lèi)自定義的

Ext.data.HttpProxy
api文檔中說(shuō)httpProxy是從object繼承來(lái)的,事實(shí)上source中它和下面的Ext.data.MemoryProxy/Ext.data.ScriptTagProxy都繼承于DataProxy
HttpProxy用于遠(yuǎn)程代理,而且服務(wù)端返回信息時(shí)必須指定Content-Type屬性為"text/xml".

HttpProxy( Object conn )
構(gòu)造一個(gè)HttpProxy對(duì)象,參數(shù)可以是一個(gè)類(lèi)似于{url: 'foo.php'}這樣的json對(duì)象,也可以是一個(gè)Ext.data.Connection對(duì)象,如果參數(shù)沒(méi)有指定,將使用Ext.Ajax對(duì)象將被用于發(fā)起請(qǐng)求

getConnection() : Connection
得到當(dāng)前連接對(duì)象

load( Object params, Ext.data.DataReader reader, Function callback, Object scope, Object arg ) : void
從配置的connection對(duì)象得到record數(shù)據(jù)塊,并激發(fā)callback
params:        發(fā)起http請(qǐng)求時(shí)所要傳遞到服務(wù)端的參數(shù)
DataReader:    見(jiàn)DataReader
callback:    回叫方法,第一個(gè)參數(shù)為接收到的信息,第二個(gè)參數(shù)為arg,第三個(gè)是成功標(biāo)志
scope:        范圍
arg:        這兒的參數(shù)將會(huì)傳遞給回叫函數(shù)callback

使用示例:
var proxy=new Ext.data.HttpProxy({url:'datasource.xml'});
    //關(guān)于reader將會(huì)在Ext.data.DataReader中講解
    var reader = new Ext.data.XmlReader({
       totalRecords: "results",
       record: "row",        
       id: "id"                
    }, [
       {name: 'name', mapping: 'name'},
       {name: 'occupation'}           
    ]);
   
    //定義回叫方法
    var metadata;
    function callback(data,arg,success){
        if(success){
            metadata=data;
        }
    }
    //從connection配置的url中利用reader將返回的xml文件轉(zhuǎn)為元數(shù)據(jù),并傳遞給callback
    proxy.load( null,reader,callback,this);

Ext.data.MemoryProxy
MemoryProxy( Object data )
構(gòu)造
load( Object params, Ext.data.DataReader reader, Function callback, Object scope, Object arg ) : void
取數(shù)據(jù),和HttpProxy類(lèi)似,只是params參數(shù)沒(méi)有被使用

使用示例
var proxy=new Ext.data.MemoryProxy([ [1, 'Bill', 'Gardener'], [2, 'Ben', 'Horticulturalist'] ]);
var reader = new Ext.data.ArrayReader(
{id: 0},
[
{name: 'name', mapping: 1},        
{name: 'occupation', mapping: 2}   
]);

var metadata;
function callback(data,arg,success){
    metadata=data;
}
proxy.load( null,reader,callback,this);


Ext.data.ScriptTagProxy
這個(gè)類(lèi)和HttpProxy類(lèi)似,也是用于請(qǐng)求遠(yuǎn)程數(shù)據(jù),但能用于跨主域調(diào)用,如果請(qǐng)求時(shí)使用了callback參數(shù)
則服務(wù)端應(yīng)指定Content-Type屬性為"text/javascript"
并返回callback(jsonobject)
反之則應(yīng)置Content-Type屬性為"application/x-json"
并直接返回json對(duì)象

ScriptTagProxy( Object config )
構(gòu)造,其中
config定義為{
callbackParam : String,    //回叫參數(shù)
nocache : Boolean,    //是否緩存
timeout : Number,    //超時(shí)
url : String        //請(qǐng)求數(shù)據(jù)的url
}

abort() : void
放棄

ExtJS教程- Hibernate教程-Struts2 教程-Lucene教程