В чем принципиальная разница между JsonStore и JsonReader в контексте Ext.data? - PullRequest
4 голосов
/ 25 января 2010

В чем принципиальная разница между JsonStore и JsonReader в контексте с Ext.data?

Я имею в виду, когда мне следует пойти в JsonStore и когда мне следует использовать JsonReader, поскольку для меня оба предоставляют одно и то же решение.

Ответы [ 2 ]

17 голосов
/ 25 января 2010

На самом деле это две разные вещи. A Ext.data.JsonReader читает заданный объект JSON и возвращает записи данных (Ext.data.Record объекты), которые впоследствии сохраняются соответствующим хранилищем данных.

Ext.data.Store является базовым классом для всех хранилищ Ext и использует вспомогательные объекты для извлечения данных (Ext.data.DataProxy), для записи данных (Ext.data.DataWriter). ) и для чтения данных (Ext.data.DataReader). Эти базовые классы бывают разных вкусов, такие как:

Все это создает очень расширяемый компонент, который позволяет разработчику точно настраивать то, что ему нужно настроить. Для удобства разработчиков (особенно новых) Ext поставляется с несколькими предварительно настроенными хранилищами данных:

Так что на самом деле 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 голос
/ 25 января 2010

A JsonReader читает JSON из источника данных в Ext Store. JsonData не является специально определенным объектом Ext, хотя, возможно, вы видели его как имя переменной? В каком контексте вы это используете?

...