Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2013.08.11;
Скачать: CL | DM;

Вниз

Динамическое создание idHTTP или использование потока?   Найти похожие ветки 

 
Pcrepair ©   (2012-12-09 21:05) [0]

Добрый день. Есть базовая функция загрузки страницы (в упрощенном виде и без компоненты на форме):

function PageLoad(const Url:string; Loader:TidHTTP):string;
begin
 Loader:=TIdHTTP.Create(nil);
   Result:=Loader.Get(Url);
 FreeAndNil(Loader);
end;


Основный недостаток - если веб-сервер имеет невысокую скорость выдачи, то время закачки множества страниц увеличивается из-за загрузки страниц по очереди
Мне нужна одновременная загрузка до 10 страниц одновременно, чтобы по полной использовать трафик провайдера. Предварительно, функция будет иметь вид:

function LoadPageDisp(Url:TStringList):TstringList;
begin
 // тут конечно какой то цикл по запуску потоков или?
end;


где Url:TStringList - массив строк УРЛ, который функция получает от другой части программы. Выход функции - массив строк ХТМЛ-кода загруженных строниц
вроде бы есть два варианта запустить параллельную загрузку страниц - потоки и динамическое создание idHTTP
Внимание!!! Вопрос:
каким способом лучше организовать параллельную(одновременную) загрузка большого числа веб-страниц (не менее 10 одновременно)


 
DVM ©   (2012-12-09 21:15) [1]


> Внимание!!! Вопрос:
> каким способом лучше организовать параллельную(одновременную)
> загрузка большого числа веб-страниц (не менее 10 одновременно)

в случае с Indy вариант у тебя один - использовать несколько потоков


 
DVM ©   (2012-12-09 21:18) [2]


> function PageLoad(const Url:string; Loader:TidHTTP):string;
>
> begin
>  Loader:=TIdHTTP.Create(nil);
>    Result:=Loader.Get(Url);
>  FreeAndNil(Loader);
> end;

A теперь представь, что запрашиваемый URL не существует, кто уничтожать Loader будет?


 
Медвежонок Пятачок ©   (2012-12-09 21:34) [3]

интересно, зачем передавать лоадер в параметре, если внутри он создается по новой. Причем ссылка на новый лоадер назад никогда не попадает


 
Игорь Шевченко ©   (2012-12-09 22:05) [4]

Медвежонок Пятачок ©   (09.12.12 21:34) [3]

Это потому что в "упрощенном виде"



Страницы: 1 вся ветка

Текущий архив: 2013.08.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.006 c
15-1363120202
Юрий
2013-03-13 00:30
2013.08.11
С днем рождения ! 13 марта 2013 среда


15-1363092611
Дмитрий С
2013-03-12 16:50
2013.08.11
Как перезапустить себя.


2-1354816115
TCount
2012-12-06 21:48
2013.08.11
Неувязочка с PopupMenu...


2-1352830854
Dennis I. Komarov
2012-11-13 22:20
2013.08.11
PL/SQL - хочу странного (а может и нет)


3-1291842065
помогите новичку
2010-12-09 00:01
2013.08.11
откат изменений нескольких строк и видеть что поменяли