[轉載]EXT核心API詳解Ext.data(九)-DataProxy/HttpProxy/MemoryProxy/ScriptTagProxy javascript

來源:互聯網
上載者:User
Ext.data.DataProxy
資料代理類是一個純虛類,主要用於產生Ext.data.Record對象,沒有公開的屬性和方法,只是歸定子類需要處理三個事件
beforeload : ( Object This, Object params )
load : ( Object This, Object o, Object arg )
loadexception : ( Object This, Object o, Object arg, Object e )
事實上參數也是子類自訂的

Ext.data.HttpProxy
api文檔中說httpProxy是從object繼承來的,事實上source中它和下面的Ext.data.MemoryProxy/Ext.data.ScriptTagProxy都繼承於DataProxy
HttpProxy用於遠程代理,而且服務端返回資訊時必須指定Content-Type屬性為"text/xml".

HttpProxy( Object conn )
構造一個HttpProxy對象,參數可以是一個類似於{url: 'foo.php'}這樣的json對象,也可以是一個Ext.data.Connection對象,如果參數沒有指定,將使用Ext.Ajax對象將被用於發起請求

getConnection() : Connection
得到當前連線物件

load( Object params, Ext.data.DataReader reader, Function callback, Object scope, Object arg ) : void
從配置的connection對象得到record資料區塊,並激發callback
params:        發起http請求時所要傳遞到服務端的參數
DataReader:    見DataReader
callback:    回叫方法,第一個參數為接收到的資訊,第二個參數為arg,第三個是成功標誌
scope:        範圍
arg:        這兒的參數將會傳遞給回叫函數callback

使用樣本:
var proxy=new Ext.data.HttpProxy({url:'datasource.xml'});
    //關於reader將會在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檔案轉為中繼資料,並傳遞給callback
    proxy.load( null,reader,callback,this);

Ext.data.MemoryProxy
MemoryProxy( Object data )
構造
load( Object params, Ext.data.DataReader reader, Function callback, Object scope, Object arg ) : void
取資料,和HttpProxy類似,只是params參數沒有被使用

使用樣本
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
這個類和HttpProxy類似,也是用於請求遠端資料,但能用於跨主域調用,如果請求時使用了callback參數
則服務端應指定Content-Type屬性為"text/javascript"
並返回callback(jsonobject)
反之則應置Content-Type屬性為"application/x-json"
並直接返回json對象

ScriptTagProxy( Object config )
構造,其中
config定義為{
callbackParam : String,    //回叫參數
nocache : Boolean,    //是否緩衝
timeout : Number,    //逾時
url : String        //請求資料的url
}

abort() : void
放棄

load( Object params, Ext.data.DataReader reader, Function callback, Object scope, Object arg ) : void

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.