2010-01-25 90 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

相关问题