![]() |
Паралельная загрузка нескольких XML файлов.
Идет процесс инициализации. Нужно в середине процесса подгрузить несколько XML файлов. Как мне сначала загрузить все что нужно, а потом запустить процесс далее. Я начинаю грузить несколько файлов. Событий на завершение загрузки тоже несколько. Кто закончит раньше знать не могу.
Первое, что пришло, это цепочка. Начинаю грузить первый файл. В событии окончания загрузки разбираю файл и начинаю грузить второй. В событии завершения загрузки второго файла разбираю файл и начинаю грузить третий. И так далее по всем файлам. В функции события окончания загрузки последнего файла продолжаю работу основной программы. И что-то с ходу нормальной альтернативы придумать не могу. |
Для каждого файла заведите флаг загрузки. При завершении загрузки файла устанавливаете его флаг и проверяете все остальные - если все стоят, значит все файлы загружены.
|
Хм... А если файлов много, то кучу флагов делать? Про флаги была идея, но не очень нравиться. Может есть еще какой метод?
|
я делаю либо флаги, либо цепочкой :)
ИМХО флаги лучше, а что не нравится? |
Jewelz, и там и там не удобно изменять структуру. У меня файлов много. И на этапе разработки их перечень постоянно меняется. Да и сомнения берут, что это правильный подход. Потому то собственно и интересуюсь.
|
Можно сделать счетчик вместо флагов. Еще есть bulk-loader, готовая библиотека для таких дел, но я ее ни разу не использовал.
|
можно еще запомнить в начале кол-во файлов в переменную и при окончании загрузки минусовать, и тут-же проверять если ноль то все уже загрузились
|
а в чем проблема закинуть кучу лодеров в массив и слушать когда же она закачают
|
iflamberg Спасибо за наводку. То что нужно.
Код AS3:
Все, сам посмотрел внутри. Через статику сделано. Классно и не сильно большая библиотека. random13 Лоадеры в массив - понятно. Слушать когда закачаются - непонятно. Слушать как? |
Цитата:
cоздаем лодер, кидаем ему ссыль, говорим загрузить, вешаем слушатель на лодер(по завершение загрузки выполнить то то), закидываем слушатель в массив. как ток выполнился колбек удаляем лодер из массива, стопим все снимаем слушатель и уничтожаем лодер |
| Часовой пояс GMT +4, время: 11:06. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.