powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / ExtJS - хранилище, которое можно передать многим store?
25 сообщений из 30, страница 1 из 2
ExtJS - хранилище, которое можно передать многим store?
    #36459654
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сабж.

Store может иметь некоторое состояние - отфильтрован или нет и т. п. Предположим, нужно вывести select для списка стран на нескольких вкладках, данные в который подгружаются с помощью JsonStore и соответвующих readerов.

Список стран во всех вкладках будет одинаковым, но, например, в зависимости от выбора в другом selectе нужно будет отфильтровать в первой вкладке по другому, нежели во второй.

Следовательно создать один store и использовать его во всех вкладках не получится. Создавать полностью отдельные store для каждой вкладки тоже не хочется - если откроется 5 вкладок, то информация по странам будет запрошена аяксом 5 раз вместо 1.

Есть ли в ExtJS хранилище кэшированных данных, которое можно передать store'у?
...
Рейтинг: 0 / 0
ExtJS - хранилище, которое можно передать многим store?
    #36459693
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеются в виду вкладки браузера (т.е. отдельные окна с точки зрения JS)?
...
Рейтинг: 0 / 0
ExtJS - хранилище, которое можно передать многим store?
    #36459784
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Меч,

нет, вкладки ExtJSа.

P. S. Способ с сохранением в переменную результатов AJAXа и подсовывания SimpleStore'у не рассматриваем. :)
...
Рейтинг: 0 / 0
ExtJS - хранилище, которое можно передать многим store?
    #36459824
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный МечИмеются в виду вкладки браузера (т.е. отдельные окна с точки зрения JS)?
Если очень грубо - имеем два JsonStore с одинаковым url. Надо подгрузить оба. Как это сделать за один запрос?
...
Рейтинг: 0 / 0
ExtJS - хранилище, которое можно передать многим store?
    #36459865
Фотография Яростный Меч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
an0nymЕсли очень грубо - имеем два JsonStore с одинаковым url. Надо подгрузить оба. Как это сделать за один запрос?Т.е. вопрос в том, можно ли загрузить один JsonStore, а потом сделать копию?
...
Рейтинг: 0 / 0
ExtJS - хранилище, которое можно передать многим store?
    #36459900
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Яростный Меч,

копия не подойдет, она скопирует состояние первого JsonStore.

Нужна возможность создать новый JsonStore на основе тех же данных, на основе которых был создан первый JsonStore. Желательно, чтобы не пришлось во второй копировать данные из первого - тогда придется сообщать второму о первом, третьему о первом, что излишне. Или держать "прототип" - Store с общими данными в начальном состоянии.

Нужно что-то вроде объекта-сигнлтона (с lazy инициализацией), инкапсулирующего данные, который можно передать множеству store'ов. Вот этот самый объект-синглтон я знаю, как реализовать на чистом аяксе, сохранить просто возвращенный Json в переменную и все создаваемые store'ы сделать SimpleStore'ами и передавать им эту переменную.

Но может в ExtJS есть уже нечто готовое на этот счет? Не очень понимаю, что конкретно делают reader и proxy - есть подозрение, что proxy - оно и есть.
...
Рейтинг: 0 / 0
ExtJS - хранилище, которое можно передать многим store?
    #36460420
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Готового там нет, store связывается с отображением данных и начинает хранить там состояние отображения. Можешь написать обертку чтобы использовать один источник данных, но при этом иметь изолированные хранилища состояний.
...
Рейтинг: 0 / 0
ExtJS - хранилище, которое можно передать многим store?
    #36460446
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы,

т. е. proxy и reader - это не это? reader инкапсулирует запрос данным, а proxy только их (если необходимо) трансформацию, но никто из них данные в себе as is не хранит?
...
Рейтинг: 0 / 0
ExtJS - хранилище, которое можно передать многим store?
    #36460701
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
an0nymт. е. proxy и reader - это не это? reader инкапсулирует запрос данным, а proxy только их (если необходимо) трансформацию, но никто из них данные в себе as is не хранит?
Я точно в деталях не знаю, потому что сам руками не трогал, просто девелоперы сталкивались.
...
Рейтинг: 0 / 0
ExtJS - хранилище, которое можно передать многим store?
    #36461220
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы,

т. е. proxy и reader - это не это? reader инкапсулирует запрос данным, а proxy только их (если необходимо) трансформацию, но никто из них данные в себе as is не хранит?
...
Рейтинг: 0 / 0
ExtJS - хранилище, которое можно передать многим store?
    #36461221
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри, даблпост.
...
Рейтинг: 0 / 0
ExtJS - хранилище, которое можно передать многим store?
    #36461361
yelena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
an0nym,
У Store есть функции filter и filterBy.
Берите и фильтруйте свой JsonStore при переходе на другую вкладку.
Вообще смотрите исходники ext на предмет подходящих вам функций.
...
Рейтинг: 0 / 0
ExtJS - хранилище, которое можно передать многим store?
    #36461446
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yelena,

тогда надо сохранять их текущее состояние где-то, чтобы бы при переходе обратно, его восстановить.
...
Рейтинг: 0 / 0
ExtJS - хранилище, которое можно передать многим store?
    #36461453
yelena
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
yelena, и вообще jsonData можно AJAX'сом запросить один раз
и создать несколько JsonStore для разных вкладок
и по факту загрузки jsonData сделать store.loadData(json, append); для каждого JsonStore
...
Рейтинг: 0 / 0
ExtJS - хранилище, которое можно передать многим store?
    #36466808
ZeusTheTrueGod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
могу помочь, если интересно, профессионально занимаюсь экстжс уже два года
...
Рейтинг: 0 / 0
ExtJS - хранилище, которое можно передать многим store?
    #36467836
Фотография Master4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
an0nym,

У Store есть функции filter и filterBy.
Почему вы не хотите взять и отфильтровать свой JsonStore при переходе на другую вкладку?
А значения можно хранить в сессиях, если нет PHP тогда можно хранить в куках с помощью JS (JavaScript) записывать с помощью document.cookie();.
Поищите примеры в интернете.
...
Рейтинг: 0 / 0
ExtJS - хранилище, которое можно передать многим store?
    #36467881
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Master4,

напишите пример сохранения и восстановления множества состояний ОДНОГО Store после многократного применения filter[By]. А мы почитаем, посмеемся.
...
Рейтинг: 0 / 0
ExtJS - хранилище, которое можно передать многим store?
    #36467898
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
an0nym, опять ждешь у моря погоды? :) Я же говорю, пиши и дописывай. ExtJS это набор для RAD, чуть в сторону - и надо дописывать свое. Мне он нравится исключительно из-за отточеных кроссбраузерных дизайн элементов.
...
Рейтинг: 0 / 0
ExtJS - хранилище, которое можно передать многим store?
    #36467903
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
yelenayelena, и вообще jsonData можно AJAX'сом запросить один раз
и создать несколько JsonStore для разных вкладок
и по факту загрузки jsonData сделать store.loadData(json, append); для каждого JsonStore
зы, у меня еще до вопроса на этом форуме был вариант, как предложила yelena в процитированном посте. От лени искал готового и/или более красивого решения. 10 февраля, после ваших ответов, так и реализовал - сделал синглтон, запрашивающий по аяксу данные с сервера, и отэкстендился от JsonStore для автоматической подвязки этого синглтона в виде загрузчика. Теперь большинство справочников так гружу.

Кстати, в прошлой и в этой теме забыл сказать - спасибо! :) И вам и yelena'е.
...
Рейтинг: 0 / 0
ExtJS - хранилище, которое можно передать многим store?
    #36467905
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы,

с лоадером, кстати, была примерно такая же ситуация. Просто дольше искал красивого решения. После очередного уикэнда реализовал возможность как синхронной, так и асинхронной подгрузки. Асинхронную использую везде, где некритично усложнить код, с синхронной пока мирюсь моментах, где не хочется вводить новый скоуп. Есть мысли, как устранить синхронные запросы в будущем (причем код в части использования лоадера никак менять не придется), но пока есть более насущные проблемы.
...
Рейтинг: 0 / 0
ExtJS - хранилище, которое можно передать многим store?
    #36468268
ZeusTheTrueGod
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нужно сделать запрос через Ext.Ajax.request
получить ответ от сервера, распраить его как json
после этого можно писать store1.loadData(items)
store2.loadData(items.map(function(x){return x.kind == 'big' }))

То, что у store есть встроенная поддержка загрузки данных по аяксу совсем не означает, что её нужно воспользоваться - store умеет грузить данные из json и из любого объекта, типа
data = [{id:1,name:'A',kind:'small'}] - загрузит вот одну строку.
...
Рейтинг: 0 / 0
ExtJS - хранилище, которое можно передать многим store?
    #36468298
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Изменения элементов одного хранилища отражаются автоматически в другом?
...
Рейтинг: 0 / 0
ExtJS - хранилище, которое можно передать многим store?
    #36468303
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
зы,

всмысле? Если хранилище самих данных обновляется, то все на него завязанные store'ы получают сообщение и подгружают данные из хранилища, если вы об этом.

Сложнее логику не вижу смысла реализовывать, пока это нужно только для справочников - а там ни сохранение, ни сортировка на стороне сервера, ни нечто другое пока не требуется. Только оптимизировать, чтобы один справочник сто раз не грузился.
...
Рейтинг: 0 / 0
ExtJS - хранилище, которое можно передать многим store?
    #36468305
an0nym
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZeusTheTrueGod,

сейчас так и делается.
...
Рейтинг: 0 / 0
ExtJS - хранилище, которое можно передать многим store?
    #36468314
зы
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я имею ввиду что
...
Рейтинг: 0 / 0
25 сообщений из 30, страница 1 из 2
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / ExtJS - хранилище, которое можно передать многим store?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]