![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
В базу данных записано более 100.000 числовых значений. Вот надо их как-то передать в flash-приложение. Я так наивно подозреваю что flashvars использовать нецелесообразно т.к.
а) "потянет" ли? б) нет контроля за приемом данных, ни прогреса, ничего Ну и собственно, вопрос, подскажите, плиз, а каким способом оптимальней было бы это сделать? Спасибо.
__________________
coming soon... |
|
|||||
|
Модрон-ветеринар
|
Класс LoadVars.
Мне видится так. Делать по отдельности много мелких запросов, конечно, неправильно. Думается, что нужно делать большие выборки на стороне сервера и отдавать данные экземпляру класса LoadVars ответ на запрос одной большой строкой. И в onLoad разбирать пары "переменная-значение". Примерно такой алгоритм: LoadVars запрашивает скрипт. Скрипт делаеет большую порцию выборок и пишет в файл одну большую строку пары "перемнная=значение". Возвращает методу onData, например "ok". Метод проверяет "ok", узнавая таким образом, что файл готов. Отсюда же, из тела onData, делается новый запрос, но теперь другому скрипту, который считывает файл и возвращает также другому экземпляру LoadVars длиннющую строку пар "переменная=значение". onLoad этого экземпляра делает разбор и пишет данные во флешкин массив (массивы). Берем новый большой кусок. И т.д. То есть переносим нагрузку на сторону сервера и получаем за один раз большими порциями (по 500 - 1000 кб) данные. Можно попробовать писать большую строку пар "переменная-значение" не в файл, а в суперглобальный массив на стороне сервера, например, в переменную сессии, и вторым запросом забирать из этой сессии (Сессию нужно только будет инициировать, разумеется, при первом запросе, например). При этом мы исключаем трудоемкий и чреватый таймаутами процесс записи/чтения в/из файла. Также организовать конвеер, очищая перемнную сессии каждый раз, когда данные будут считаны на стороне флешки и от нее последует новый запрос. Может кто-нибудь что-то лучшее придумает, не знаю... Добавлено через 11 минут Добавлю, что LoadVars дает прекрасный инструментарий по контролю за всеми процессами обмена данными с сервером, прогресса загрузки, моментов старта-окончания. Последний раз редактировалось mooncar; 19.08.2009 в 13:00. |
|
|||||
|
Modus ponens
|
То, что вы описываете называется paging т.е. когда данные разбиваются на "страницы". Поиск по этому ключу должен дать много нужных результатов.
__________________
Hell is the possibility of sanity |
|
|||||
|
[+4 01.09.09]
Регистрация: Aug 2009
Сообщений: 27
|
Смотря какие требования к приложению, если не обязательно загружать все данные сразу то можно загружать пакетами по требованию, например по 30 значений, путем добавления в конец "SELECT" запроса конструкции "LIMIT From,To", в качестве From и To выступает номер записи по порядку 0, 30 или 31, 60 и тд., навесить инкремент и декремент для конструкции "LIMIT" на кнопочки Prev и Next. Надеюсь мысль понятна.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 18:56. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|