Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2013.08.11;
Скачать: [xml.tar.bz2];

Вниз

Динамическое создание 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;
Скачать: [xml.tar.bz2];

Наверх





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


15-1363119638
Quicker
2013-03-13 00:20
2013.08.11
Траблы QuickReport


15-1363329281
Jeer
2013-03-15 10:34
2013.08.11
Почти универсальный DB-менеджер


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


15-1363091856
TStas
2013-03-12 16:37
2013.08.11
Не стирается папка с флешки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский