![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jun 2006
Сообщений: 400
|
В флешку нужно загрузить инфу. Количество позиций около 30 тысяч. У каждой позиции 5-10 свойств. Для теста попробовал XML. Понятно что грузится очень долго. В вебе использовать не собираюсь. Среда - локальная сеть)
Подскажите пожалуйста, что можно использовать для этого? Знаю есть какой-то loadvars? Есть ли вариант грузить и разбирать файл побайтно? Так же подошел бы вариант, с зашивкой данных уже внутрь флешки. Данные меняются крайне редко. Подскажите насколько сильно эти способы различаются по скорости разбора и про особенности. Может посоветуете что? |
|
|||||
|
strange mood
|
Сталкивался со схожей проблемой, правда позиций было не 30 000 а 5 000
![]() Каждую позицию вынес в отдельный xml и сделал еще один xml в котором были тупо перечислены имена файлов (по сути - айдишники). При парсинге списка тормозов не возникало, остальное подгружал по мере необходимости. Сначала сдуру сделал перекидывание всех айдишников в массив, потом дошло, что XMLList - тоже вполне себе массив, и ничего лишнего тут городить не надо. Главное сохранить на него ссылку, чтобы он не строился каждый раз.
__________________
тонкий тролль, осеянный благодатью |
|
|||||
|
Регистрация: Oct 2009
Адрес: Калининград
Сообщений: 134
|
Данные, зашитые во флешку будут ближе к ней, чем загружаемые посредством loadVars, поэтому, если данные не меняются, то лучше зашивать.
Разбирать данные побайтно конечно можно, но это будет достаточно медленно и для этого придется писать свои алгоритмы. Тут лучше использовать че-то типа array.join() при записи и string.split() при разборке
__________________
Жду ответа, как соловей лета. (С) Морис Мосс, 'IT Crowd' |
|
|||||
|
Если все локально, то AIR + SQLLite, бинарные данные тоже без проблем (ByteArray). Если запихивать внутрь, то каждая позиция отдельный объект (типизированный), всё загнать в Vector с фиксированной длинной (хотя мнения расходятся, дает ли это ощутимый прирост скорости). Самый быстрый вариант зашить во флешку (нет необходимости парсить данные). Насчет скорости бинарника и базы данных, зависит от того как у вас организован доступ к данным (все скопом или порциями).
|
|
|||||
|
Modus ponens
|
Если данные меняются крайне редко - делаем примерно следующее:
http://www.flashdevelop.org/communit...=5856&start=15 Если в двух словах: сериализуем данные либо в Array, либо в какую-нибудь другую коллекцию по желанию (их правда, всего-то по-настоящему XMLList и Object, Vector и Dictionary не сериализируйтся). и либо встраиваем непосредственно во флешку, либо FileStream.open() либо URLLoader / URLStream загружаем. Более продвинутый вариант - создать свою структуру данных и ее сериализовать используя IExternalizable...
__________________
Hell is the possibility of sanity |
|
|||||
|
.
|
30К+ объектов всегда будут тормозить при парсинге.
FileStream (AIR only) Я к тому, что не загрузка, а парсинг занимает время. Последний раз редактировалось dimarik; 26.12.2009 в 02:20. |
|
|||||
|
strange mood
|
Для парсинга можно и прогрессбар сделать, главное чтобы флэшка не подвешивала систему на несколько секунд, как это бывает если бездумно влепить цикл.
__________________
тонкий тролль, осеянный благодатью |
![]() |
![]() |
Часовой пояс GMT +4, время: 21:07. |
|
|
« Предыдущая тема | Следующая тема » |
|
|