4

在 Ext.data 的上下文中,JsonStore 和 JsonReader 之间的基本区别是什么?

我的意思是当我应该使用 JsonStore 以及何时应该使用 JsonReader 时,两者都提供了相同的解决方案。

4

2 回答 2

17

实际上它们是两个不同的东西。AExt.data.JsonReader读取给定的 JSON 对象并返回Ext.data.Record稍后由相应数据存储存储的数据记录(对象)。

Ext.data.Store是所有 Ext 存储的基类,并使用辅助对象来检索数据 ( ) Ext.data.DataProxy、写入数据 ( Ext.data.DataWriter) 和读取数据 ( Ext.data.DataReader)。这些基类有不同的风格,例如:

这一切都建立了一个非常可扩展的组件,允许开发人员准确配置他需要调整的内容。为了让开发人员(尤其是新开发人员)更容易,Ext 带有一些预配置的数据存储:

所以实际上 aExt.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'}]
    });
});
于 2010-01-25T13:06:55.187 回答
1

AJsonReader将 JSON 从数据源读取到 Ext Store。JsonData 不是一个专门定义的 Ext 对象,尽管您可能已经将它视为一个变量名?您在什么情况下使用它?

于 2010-01-25T07:05:59.763 回答