2010-01-25 83 views

回答

17

其實它們是兩個單獨的東西。 A Ext.data.JsonReader讀取給定的JSON對象並返回稍後由相應數據存儲區存儲的數據記錄(Ext.data.Record對象)。

Ext.data.Store的是所有分機儲存的基類,並使用輔助對象,用於檢索數據(Ext.data.DataProxy),用於將數據寫入(Ext.data.DataWriter)和用於讀取的數據(Ext.data.DataReader)。這些基類有不同的調味劑,如:

這一切都建立了一個非常可擴展的組件,允許開發人員準確配置他需要調整的內容。爲了讓開發人員更容易(尤其是新的)分機附帶了一些預配置的數據存儲:

所以實際上Ext.data.JsonStore只是一個方便的類,使開發人員更容易。

以下兩個代碼段將創建相同的(或類似的)存儲:

var store = new Ext.data.JsonStore({ 
    url: 'get-images.php', 
    root: 'images', 
    idProperty: 'name', 
    fields: ['name', 'url', {name:'size', type: 'float'}, {name:'lastmod', type:'date'}] 
}); 

// or 

var store = new Ext.data.Store({ 
    url: 'get-images.php', 
    reader: new Ext.data.JsonReader({ 
     root: 'images', 
     idProperty: 'name', 
     fields: ['name', 'url', {name:'size', type: 'float'}, {name:'lastmod', type:'date'}] 
    }); 
}); 
1

A JsonReader將JSON從數據源讀取到Ext Store中。 JsonData不是一個特別定義的Ext對象,雖然也許你已經將它看作是一個變量名稱?你在什麼情況下使用它?

+0

下面是一個例子,實施例 使用閱讀 VAR商店=新Ext.data.Store({ 代理:新的分機.data.HttpProxy({ URL: '/分貝CMD =列表' \t \t}),\t \t \t 讀者\t:新Ext.data.JsonReader( \t \t \t \t {root:'row',fields:['name']} \t \t) \t}); store.load(); 實施例2與JsonStore 變種商店=新Ext.data.JsonStore的實踐例子({ \t \t \t網址: '?/分貝CMD =名單', \t \t \t根: '行', \t \t \t字段: ['name'] \t \t}); store.load(); – shahjapan 2010-01-25 07:37:49

+0

就像一個筆記,你最初問JsonReader和* JsonData *之間的區別,這顯然是因爲你編輯你的問題來改變(而不是注意到)的錯誤。只是想澄清,以便我的答案看起來不那麼隨意。正如Stefan在下面解釋的,JsonStore是一個便利的課程。如果您通過HTTP加載JSON,它只會節省一些配置工作量,但它等同於使用JsonReader和HttpProxy。 – 2010-01-25 15:12:50

相關問題