Просмотр полной версии : Вывод данных по частям
Привет!
Я делаю CD-каталог продукции...
Хочется сделать красиво... Что-то вроде flexstore...
Возникла проблема: огромный ассортемент(~10000 наименований)... при загрузке приложения все данные из каталога (вместе с картинками) кэшируются... Это происходит очень долго... и потом все "красивые" переходы между видами тормозят... :(
Вопрос: как организовать по-стрничный вывод продукции (не грузить все сразу в память)?
получай по частям из базы, выводи по частям. ничего нового.
получай по частям из базы, выводи по частям. ничего нового.
Теоретичеки - понятно...
Но... мне нужно еще и фильтры применять к базе перед выводом... а не после...
Более конкретный ответ хочется у слышать...
И, если можно, с примером кода...
Что мешает слать запрос с каким-то условиями (фильтрами), которые понимает сервер (скрипт/сокет)?
тебе не понятно, как организовать запросы из флекса через сервер к базе? amfphp или weborb.
Что мешает слать запрос с каким-то условиями (фильтрами), которые понимает сервер (скрипт/сокет)?
какой сервер???? :(
каталог локально работать должен с компакт-диска(без подключения к интернету)...
Помогите, плиииз!
Не понимаю как это организовать...
Ты бы обяснил сначала, что откуда должно работать, а потом возмущался.
В каком виде у тебя данные? Если грамотно созданный xml, то e4x запросы помогут тебе в его управлении. Загружаешь весь xml и крутишь его как хочешь.
Ты бы обяснил сначала, что откуда должно работать, а потом возмущался.
В каком виде у тебя данные? Если грамотно созданный xml, то e4x запросы помогут тебе в его управлении. Загружаешь весь xml и крутишь его как хочешь.
Данные в xml...
это каталог:
<catalog>
<product productId="1">
<articul>906329</articul>
<name>Штукенция1</name>
<price>49.99</price>
<mass>9.99</mass>
<image>906329.jpg</image>
<infa>вот такая штука1</infa>
<idgr>1001</idgr>
</product>
<product productId="2">
<articul>948342</articul>
<name>Штукенция2</name>
<price>39.99</price>
<mass>999.99</mass>
<image>948342.jpg</image>
<infa>вот такая штука2</infa>
<idgr>1002</idgr>
</product>
<product productId="3">
<articul>498763</articul>
<name>Штукенция3</name>
<price>99.99</price>
<mass>199.99</mass>
<image>498763.jpg</image>
<infa>вот такая штука3</infa>
<idgr>1001</idgr>
</product>
</catalog>
еще есть xml с товарными группами:
<group>
<node1 label="группа1" gropid="">
<node label="подгруппа1" gropid="1001"></node>
<node label="подгруппа2" gropid="">
<node label="подгруппа3" gropid="1002"></node>
<node label="подгруппа4" gropid="1003"></node>
</node>
<node label="подгруппа5" gropid="">
<node label="подгруппа6" gropid="1004"></node>
<node label="подгруппа7" gropid="1005"></node>
</node>
</node1>
<node1 label="группа2">
<node label="подгруппа8" gropid="">
<node label="подгруппа9" gropid="1006"></node>
<node label="подгруппа10" gropid="1007"></node>
</node>
<node label="подгруппа11" gropid="">
<node label="подгруппа12" gropid="1008"></node>
<node label="подгруппа13" gropid="1009"></node>
<node label="подгруппа14" gropid="1010"></node>
</node>
</node1>
Собственно гружу группы в дерево...
юзер тыкает группу показываю (хочу показывать... :( ) содержимое группы...
есть еще фильтры по цене и массе(диапазоны)...
трабла в том, что фильтры управляют видимостью объектов... но они все равно остаются загружены в память компа, что существенно замедляет работу приложения...
не засунул товары внутрь групп т.к. не хочу их отображать в дереве навигации по группам...(другого способа не придумал...)
Определись, сколько элементов будет работать без тормозов (10).
Загрузи две xml. При нажатии на нод, ты получаешь id группы. Простым e4x запросом типа myXML.product.(idgr=="12") ты получаешь новый xml с этой группы. Потом узнав количество его элементов (20) ты понял, что тебе нужно 2 страницы. Переключение между страницами делай как угодно - удобно создать комбобокс c датапровайдером типа [{label:"1 страница", data:1}...] и т.п. Теперь динамически создаешь окончательный xml с данными только для этой страницы. Циклом от 0 до 9 идешь по полученному после фильрации xml и добавляешь его ноды в новый. Затем новый и отображаешь. Применять дополнительные фильтры также можно e4x запросами.
Определись, сколько элементов будет работать без тормозов (10).
Загрузи две xml. При нажатии на нод, ты получаешь id группы. Простым e4x запросом типа myXML.product.(idgr=="12") ты получаешь новый xml с этой группы. Потом узнав количество его элементов (20) ты понял, что тебе нужно 2 страницы. Переключение между страницами делай как угодно - удобно создать комбобокс c датапровайдером типа [{label:"1 страница", data:1}...] и т.п. Теперь динамически создаешь окончательный xml с данными только для этой страницы. Циклом от 0 до 9 идешь по полученному после фильрации xml и добавляешь его ноды в новый. Затем новый и отображаешь. Применять дополнительные фильтры также можно e4x запросами.
СПАСИБО! Пошел переваривать... :) ...
еще вопрос возник(глупый конечно):
куда это воткнуть? и как вызывать?
у меня есть панелька с фильтрани(навигационная) и панелька для вывода содержимого каталога...
P.S. Прошу простить за глупый вопрос... но flex ковыряю всего месяц... отсутствие русской документации не дает быстро въехать в некоторые вещи...
это просто общий алгоритм работы, который ты должен реализовать в виде функций, которые ты можешь воткнуть в тег Script и потом вызвать.
это просто общий алгоритм работы, который ты должен реализовать в виде функций, которые ты можешь воткнуть в тег Script и потом вызвать.
то, что это алгоритм я понял...
не понятно как из одного компонента добираться до метедов и свойств другого...
простите ламера :rolleyes: ...
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.