Ouverture d'un fichier html TWebbrowser
Bonjour,
Il y a t'il une méthode pour chargé un fichier dans un "TWebbrowser" sans que sa mouline ?
Exemple pour un fichier html de ~10Mo "TWebbrowser" : Temps de chargement : 28 Secondes , Mozilla Firefox : 5~8 Secondes.
J'ai testé plusieurs méthodes :
1) Chargement directe du code Html dans le "TWebbrowser".
Code:
1 2 3 4 5 6 7 8
|
var HtmlDoc: Variant;
{--}
Webbrowser.Navigate('about:blank');
HtmlDoc := Webbrowser.Document;
HtmlDoc.Write(Code html);
HtmlDoc.Close;
Webbrowser.Refresh; |
2) Créer un fichier temporaire, puis le chargé dans le "TWebbrowser".
Code:
WebBrowser.Navigate('file:///Tmp.html');
3) Charger le code source de la page depuis un flux de données (stream)
https://delphi.developpez.com/faq/?p...on-application
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| procedure LoadHTML(AWebBrowser: TWebBrowser; const HTMLCode: string);
var
ss: TStringStream;
sa: TStreamAdapter;
begin
AWebBrowser.Navigate('about:blank');
while AWebBrowser.ReadyState < READYSTATE_INTERACTIVE do
Application.ProcessMessages;
if Assigned(AWebBrowser.Document) then
begin
ss:= TStringStream.Create(HTMLCode);
try
sa:= TStreamAdapter.Create(ss);
(AWebBrowser.Document as IPersistStreamInit).Load(sa);
finally
ss.Free;
end;
end;
end; |
Code:
1 2 3 4 5 6 7 8
| var
Fichier: TStringList;
begin
Fichier:= TStringList.Create;
Fichier.LoadFromFile('Fichier.html');
LoadHTML(WebBrowser, Fichier.Text);
Fichier.Free;
end; |
Les 3 méthodes sont identiques sur le temps de chargement.
Merci.