![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
|
|
#1
|
|||
|
|||
|
Добрый день
Замечено, что в момент загрузки страницы ПРОЦ грузит до 50% видимо в первом Application.ProcessMessages Код:
try
Wbbr.Navigate(UrlSearch, Flags, TargetFrameName, PostData, Headers);
repeat
Application.ProcessMessages; (*видимо тут грузит проц до 50%*)
until Wbbr.ReadyState >= READYSTATE_COMPLETE;
if Wbbr.Document <> nil then
HtmlCodeData := AnsiLowerCase(
(Wbbr.Document as iHTMLDocument2).body.innerhtml);
Application.ProcessMessages; (*тут вроде бы и не надо?*)
except
CodeSite.EnterMethod( Self, 'Timer' );
CodeSite.SendError('TWebBrowser failed'); (*бравузер здох*)
CodeSite.ExitMethod( Self, 'Timer' );
end;Вопрос: чем можно заменить Application.ProcessMessages в коде, так чтобы гарантировать загрузку страницы перед выполнением последующих инструкций |
|
#3
|
|||
|
|||
|
потоки это хорошо, но не по теме
уже насоветовали Код:
repeat Sleep (1); Application.ProcessMessages; теперь не более 7% загрузки проца |
|
#4
|
||||
|
||||
|
Sleep можно и больше 1 миллисекунды сделать. Загрузка снизится почти до нуля.
![]() |
|
#5
|
||||
|
||||
|
а чем события не устраивают?
|
|
#6
|
|||
|
|||
|
OnDownloadComplete и прочие не походят, так как нет гарантии что они возникают после закачки и обработки страницы
код в топике гарантирует, в том числе и в ситуации с низкой скоростью закачки, правильную обработку кода(ДОМ). это проверено |