Ext.Ajax
是 Ext.data.Connection
的一個 singleton 實體,可以用來跟伺服器上面的程式溝通。
以下是一個簡單的範例:
Ext.Ajax.request({ url: 'ajax_demo/sample.json', success: function(response, opts) { var obj = Ext.decode(response.responseText); console.dir(obj); }, failure: function(response, opts) { console.log('server-side failure with status code ' + response.status); } });
Ext.Ajax.request
在執行時會以非同步(asynchronous)的方式送出請求,然後馬上回傳(return),回傳值並不會包含與伺服器連線的任何資訊或結果,當成功連現取得資料時,Ext.Ajax.request
會執行 success
所指定的函數,若失敗則執行 failure
所指定的函數。另外也可以使用 requestcomplete
事件來處理完成請求時的動作。
這裡的 Ext.decode
是用來解析 JSON 的字串用的,等同於 Ext.JSON.decode
,可將 JSON 字串轉換為 JavaScript 物件。
如果要更改 Ext.Ajax
的一些預設的設定,可以直接從它的屬性上修改:
Ext.Ajax.setTimeout(60000); // 60 秒
這一行是將 timeout 的時間設定為 60 秒。
在使用 Ext.Ajax
的 request
函數時,裡面所指定的參數會取代 Ext.Ajax
預設的設定,下面這個例子中,最後所使用的 timeout 會是 60 秒:
Ext.Ajax.setTimeout(120000); // 120 秒 Ext.Ajax.request({ url: 'page.aspx', timeout: 60000 });
一般來說,在應用程式中都會使用 Ext.Ajax
來處理 Ajax 的的請求,而如果應用程式中需要處理大量不同於預設設定的 Ajax 請求,就可以使用 Ext.data.Connection
來另外建立一個實體,獨立處理。
參考資料:Ext.Ajax