分類: 網頁開發

Ext JS 使用 Ext.Ajax 與伺服器溝通

Ext.AjaxExt.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.Ajaxrequest 函數時,裡面所指定的參數會取代 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

G. T. Wang

個人使用 Linux 經驗長達十餘年,樂於分享各種自由軟體技術與實作文章。

Share
Published by
G. T. Wang
標籤: JavaScript

Recent Posts

光陽 KYMCO GP 125 機車接電發動、更換電瓶記錄

本篇記錄我的光陽 KYMCO ...

2 年 ago

[開箱] YubiKey 5C NFC 實體金鑰

本篇是 YubiKey 5C ...

3 年 ago

[DIY] 自製竹火把

本篇記錄我拿竹子加上過期的苦茶...

3 年 ago