Ext.data.Connection是對Ext.lib.Ajax的封裝,它提供了配置使用Ajax的通用方式,它在內部通過Ext.lib.Ajax實現與背景非同步呼叫。與底層的Ext.lib.Ajax相比,Ext.data. Connection提供了更簡潔的配置方式,使用起來更方便。
Ext.data.Connection主要用於在Ext.data.HttpProxy和Ext.data.ScriptTagProxy中執行與後台互動的任務,它會從指定的URL獲得資料,並把後台返回的資料交給HttpProxy或ScriptTagProxy處理,Ext.data.Connection的使用方式如代碼清單
var conn = new Ext.data.Connection({
autoAbort: false,
defaultHeaders: {
referer: 'http://localhost:8080/'
},
disableCaching : false,
extraParams : {
name: 'name'
},
method : 'GET',
timeout : 300,
url : '01-01.txt'
});
在使用Ext.data.Connection之前,都要像上面這樣建立一個新的Ext.Connection執行個體。我們可以在構造方法裡配置對應的參數,比如autoAbort表示連結是否會自動斷開、default- Headers參數表示請求的預設首部資訊、disableCaching參數表示請求是否會禁用緩衝、extraParams參數代表請求的額外參數、method參數表示要求方法、timeout參數表示串連的逾時時間、url參數表示請求訪問的網址等。
在建立了conn之後,可以調用request()函數發送請求,處理返回的結果,如下面的代碼所示:
Request()函數中可以設定success和failure兩個回呼函數,分別在請求成功和請求失敗時調用。請求成功時,success函數的參數就是後台返回的資訊。
我們再來看一下request函數中的其他參數。
q url:String:請求url。
q params:Object/String/Function:請求傳遞的參數。
q method:String:要求方法,通常為GET或POST。
q callback:Function:請求完成後的回呼函數,無論是成功還是失敗,都會執行。
q success:Function:請求成功時的回呼函數。
q failure:Function:請求失敗時的回呼函數
q scope:Object:回呼函數的範圍。
q form:Object/String:綁定的form表單。
q isUpload:Boolean:是否執行檔案上傳。
q headers:Object:請求首部資訊。
q xmlData:Object:XML文檔對象,可以通過URL附加參數的方式發起請求。
q disableCaching:Boolean:是否禁用緩衝,預設為禁用。
Ext.data.Connection還提供了abort([Number transactionId])函數,當同時有多個請求發生時,根據指定的事務id放棄其中的某一個請求。如果不指定事務id,就會放棄最後一個請求。isLoading([Number transactionId])函數的用法與abort()類似,可以根據事務id判斷對應的請求是否完成。如果未指定事務id,就判斷最後一個請求是否完成。
conn.request({
success: function(response) {
Ext.Msg.alert('info', response.responseText);
},
failure: function() {
Ext.Msg.alert('warn', 'failure');
}
});