【发布时间】:2010-01-25 07:00:42
【问题描述】:
JsonStore 和 JsonReader 在 Ext.data 上下文中的基本区别是什么?
我的意思是我什么时候应该使用 JsonStore,什么时候应该使用 JsonReader,因为对我来说两者都提供相同的解决方案。
【问题讨论】:
标签: json extjs jsonreader
JsonStore 和 JsonReader 在 Ext.data 上下文中的基本区别是什么?
我的意思是我什么时候应该使用 JsonStore,什么时候应该使用 JsonReader,因为对我来说两者都提供相同的解决方案。
【问题讨论】:
标签: json extjs jsonreader
实际上它们是两个不同的东西。 Ext.data.JsonReader 读取给定的 JSON 对象并返回数据记录(Ext.data.Record 对象),这些记录随后由相应的数据存储存储。
Ext.data.Store 是所有 Ext 存储的基类,它使用辅助对象来检索数据 (Ext.data.DataProxy)、写入数据 (Ext.data.DataWriter) 和读取数据 (Ext.data.DataReader)。这些基类有不同的风格,例如:
这一切都建立了一个非常可扩展的组件,允许开发人员准确配置他需要调整的内容。为了让开发人员(尤其是新开发人员)更容易,Ext 带有一些预配置的数据存储:
Ext.data.ArrayStore 让读取简单的 Javascript 数组更容易Ext.data.DirectStore,只是一个预先配置了Ext.data.DirectProxy 和Ext.data.JsonReader 的商店
Ext.data.JsonStore,只是一个预配置有 Ext.data.JsonReader 的商店
Ext.data.XmlStore,只是一个预配置有 Ext.data.XmlReader 的商店
所以实际上Ext.data.JsonStore 只是一个方便类,使开发人员更容易。
以下两个 sn-ps 将创建相同(或可比较)的商店:
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'}]
});
});
【讨论】:
JsonReader 将 JSON 从数据源读取到 Ext Store。 JsonData 不是一个专门定义的 Ext 对象,尽管您可能已经将它视为一个变量名?您在什么情况下使用它?
【讨论】: