Pull to refresh

ExtJS для новичков — Общие принципы работы с Store

Lumber room
Awaiting invitation
Совсем недавно начал пользоватся этим фреймворком. Не сказал бы что много хорошей документации про него, особенно на русском. Потому решил помочь новичкам, таким как я, серией статтей (если будет востребовано), где постараюсь внятно обяснить основные (и не только) принципы ExtJS.

Основная работа, проводимая любим фреймворком, ето работа над данными, обработка информации, потому первая заметка будет о классах, манипилирующих етими самыми данными. А именно Store, и ему подобные.

Store представляет из себя хранилище информации, именно етот (или его производные) обьект используют все виджеты для хранения своих данных. Если кто-то подумал что это еще одна реализация обычных массивов, то поспешу огорчить, ето не совсем так.

Обьект Store для работы требует еще несколько обьектов некоторых класов, а именно:

DataProxy
DataReader
DataWriter (опционально)

Рассмотрим эти класы подробнее.

DataProxy используется для доступа к информации с данными. Это может быть аякс запрос к серверу, или локальное хранилище. Задание етого класа — так сказать, собрать все ети способа доступа под одной крышей, создать единственный интерфейс доступа.

DataReader используется для декодирования принятой через DataProxy информации (json, xml), и придания ей нужного вида (того, с которым умеет работать сам Store), а именно масив обьектов класа Record.

Обьект класа DataWriter не обязателен для работы Store, он используется для придания записям (Record'ы) нужного вида, для последующего сохранения посредством DataProxy.

Теперь давайте посмотрим на обычную последовательность работы с Store. Создаем наши DataProxy, DataReader, Store:
// ! это нерабочий пример, так как класы DataProxy и DataReader - абстрактные !
var store = new Ext.data.Store({
proxy: new Ext.data.DataProxy(),
reader: new Ext.data.DataReader();
});

store.load();

// теперь манипулируем данными
Ext.Msg.alert('Message', store.getAt(0).data.xxx);


Если все будет хорошо, в следующей заметке я подробнее расскажу о разных видах DataProxy и DataReader, с реальными примерами.
Tags:
Hubs:
You can’t comment this post because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.