![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Jan 2008
Сообщений: 2
|
Доброй ночи, гуру.
Изготовил скрипт на AS 3.0, который качает, всячески там обрабатывает и отображает заранее наперед неизвестное количество небольших (<100 кБайт) файлов с данными, и всё работает замечательно, но... В силу специфики нашего интранета время ответа серверов на запросы очень высокое, больше секунды, скорее, ближе к двум. Проблема вылезает особенно выпукло, когда в скрипте приходится качать по 10-15 файлов с данными за раз. Изначально скрипт был написан так, что создавалась цепочка лоадеров, в обработчике евента COMPLETE предыдущего URLLoader обрабатывались пришедшие данные и создавался следующий URLLoader, в общем, показа финальной картины и полностью обработанных данных пользователь ждет 15 раз умножить на секунду-две. Я решил не тупить и заряжать полную обойму лоадеров одновременно, слегка изменив класс URLLoader для того, чтобы каждый экземпляр, собственно, знал, к какому индексу в общем массиве данных относится то, что он грузит. В общем, создается массив из этаких myURLLoader-ов, к каждому цепляется нужный URLRequest и каждому вызывается load(). Сидим ждем прихода евентов COMPLETE. Подождали, когда придут все, что запросили, и работаем дальше. Так вот, выясняется, что время ожидания прихода всех необходимых данных и в случае цепочки лоадеров, и в случае одновременного старта всех сразу лоадеров, одинаково. В первом случае я жду COMPLETE 15 раз по 2 секунды, а во втором случае все евенты COMPLETE ссыпаются мне на голову через 30 секунд. Уважаемые гуру, подскажите, где я торможу, что не так делаю? Возможно ли вообще организовать загрузку кучи файлов параллельно, несколькими потоками? |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Количество потоков ограничено. В лучшем случае четыре штуки одновременно. На практике один или два.
|
|
|||||
|
Регистрация: Jan 2008
Сообщений: 2
|
Плохо. А количество потоков в моем случае можно как-нибудь определять? Изменить?
Это количество потоков на экземпляр плейера? Если на одной странице браузера создать главный скрипт и обойму невидимых вспомогательных, каждый из которых попросит данные и отольет главному - бредовая затея? |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Нельзя определять. Один или два потока, обычно. И всё.
|
|
|||||
|
флэш тут не причем. все дело в броузере
|
|
|||||
|
Banned
Регистрация: Oct 2007
Сообщений: 269
|
А разве raw socket можно контролировать?
|
![]() |
![]() |
Часовой пояс GMT +4, время: 20:48. |
|
|
« Предыдущая тема | Следующая тема » |
|
|