![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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 и прочие не походят, так как нет гарантии что они возникают после закачки и обработки страницы
код в топике гарантирует, в том числе и в ситуации с низкой скоростью закачки, правильную обработку кода(ДОМ). это проверено |
|
#7
|
||||
|
||||
|
даже в справке написано:
Цитата:
на худой конец: Код:
WebBrowser1.OnDocumentComplete:=WebBrowser1DocumentComplete;
WebBrowser1.Navigate('http://www.sony-ericsson.ru/forums2/index.php');
procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant);
begin
if WebBrowser1.ReadyState=READYSTATE_COMPLETE then Caption:='Ok';
end;Последний раз редактировалось NumLock, 28.05.2012 в 17:07. |
|
#8
|
|||
|
|||
|
справочник - это хорошо
а сам не пробовал? if Wbbr.OnDocumentComplete = True Then .... в своих программах? а то опять прийдется полдня тестировать |
|
#9
|
||||
|
||||
|
событие OnDocumentComplete типа TWebBrowserDocumentComplete:
Код:
TWebBrowserDocumentComplete = procedure(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant) of object; |
|
#10
|
|||
|
|||
|
ну хорошо нельзя сравнивать.....
речь то не об этом речь о том, есть ли у тебя личный опыт использования этого кода и с какими результатами тот код что приведен в топике хотя бы проверен и проблем замечено не было |