在Ext.data的上下文中JsonStore和JsonReader之间的基本区别是什么?
我的意思是当我应该去JsonStore,当我应该使用JsonReader时,我们都提供相同的解决方案。
答案 0 :(得分:17)
实际上它们是两个不同的东西。 Ext.data.JsonReader
读取给定的JSON对象并返回稍后由相应数据存储存储的数据记录(Ext.data.Record
对象)。
Ext.data.Store
是所有Ext存储的基类,并使用辅助对象来检索数据(Ext.data.DataProxy
),用于写入数据(Ext.data.DataWriter
)和读取数据({{3 }})。这些基类有不同的风格,例如:
这一切都构建了一个非常可扩展的组件,允许开发人员准确配置他需要调整的内容。为了使开发人员(尤其是新开发人员)更容易,Ext附带了一些预先配置的数据存储:
Ext.data.XmlReader
更容易从简单的Javascript数组中读取Ext.data.ArrayStore
,只是预先配置了Ext.data.DirectStore
和Ext.data.DirectProxy
Ext.data.JsonReader
,只是预先配置了Ext.data.JsonStore
Ext.data.JsonReader
,只是预先配置了Ext.data.XmlStore
所以实际上Ext.data.XmlReader
只是一个便利类,可以让开发人员更轻松。
以下两个代码段将创建相同(或类似)的商店:
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 :(得分:1)
JsonReader
将JSON从数据源读取到Ext Store中。 JsonData不是一个专门定义的Ext对象,虽然你可能已经把它看作变量名吗?你在什么情况下使用它?