![]() |
TWebbrowser Cache leeren
Hi!
Ich rufe eine Webseite mit Webbrowser1.Navigate alle 120 Sekunden auf um den Quelltext auszulesen. Allerdings wird immer die Webseite vom ersten Aufruf in das Webbrowserfenster geladen, vermutlich wird sie aus dem Cache geholt. Kann man bei Webbrowser1.Nagivate angeben, dass die Seite neu geladen werden soll? |
Re: TWebbrowser Cache leeren
Eigentlich wird geprüft, ob sich die Seite geändert hat. Wenn ja wird diese neu geladen, sonst die gecachte verwendet.
|
Re: TWebbrowser Cache leeren
Entweder durch ein Refresh
Delphi-Quellcode:
oder wenn du nur den Quelltext ausliest Indy oder Wininet verwenden.
TWebbrowser.Refresh2(REFRESH_COMPLETELY{=3})
|
Re: TWebbrowser Cache leeren
Komisch, ich krieg aber immer die gleiche Seite angezeigt, wie beim ersten Mal - es handelt sich eigentlich um ein xml dokument, dass sich jedesmal verändert.
Selbst wenn ich das Programm in Delphi stoppe und dann neue starte bekomm ich immer noch das gleiche Dokument angezeigt, wie beim ersten mal... |
Re: TWebbrowser Cache leeren
Also ich lade das xml dokument so:
Delphi-Quellcode:
Im Webbrowser1 wird aber immer die gleiche Datei angezeigt, die beim ersten Mal geladen wurde, obwohl sie sich verändert hat :(
Form1.WebBrowser1.Navigate('http://sc5.genuinecast.net:8002/admin.cgi?mode=viewxml');
|
Re: TWebbrowser Cache leeren
auch wenn du beim 2. Mal Refresh2(..) aufrufst?
|
Re: TWebbrowser Cache leeren
Ja, hab ich jetzt auch mal probiert, dann kommt auch die Seite vom ersten mal :(
|
Re: TWebbrowser Cache leeren
Hab gerade Delphi mal zugemacht, wieder aufgemacht, das Programm neu geladen (Debug-Modus). Selbst da kam die Seite vom ersten Mal (bevor ich Delphi zugemacht habe...)
|
Re: TWebbrowser Cache leeren
Zitat:
![]() |
Re: TWebbrowser Cache leeren
Nee, mir ist erst aufgefallen, dass die Seite sich nicht aktualisiert, nachdem ich schon alles programmiert hatte - das wäre jetzt ziemlich Arbeit das auf eine andere Funktion umzubauen. Vielleicht ist die Datei irgendwie bei Temporary Internet files gespeichert und wird von da immer wieder geholt?
|
Re: TWebbrowser Cache leeren
Mir fällt gerade auch auf, dass nur folgendes klappt bei mir:
Delphi-Quellcode:
Wenn ich diesen hier verwende:
Form1.Webbrowser1.Refresh2;
Delphi-Quellcode:
...kommt "there is no overload version of refresh2...
Form1.Webbrowser1.Refresh2(REFRESH_COMPLETELY);
|
Re: TWebbrowser Cache leeren
Hi
versuch mal an die URL einen weiteren Parameter anzuhängen, den du immer neu ermittelst. z.B:
Delphi-Quellcode:
Damit wird der Cache des Internet Explorer ausgetrickst, den Server stört das aber meist nicht.
Webbrowser1.Navigate(URL + '×tamp=' + FormatDateTime('yyyymmddhhnnsszzz', Now));
Wenn deine URL bereits eine Variable enthält (wie bei dir) hängst Du die nächste mit & dran, wenn nicht, dann ist es die erste und wird mit ? angehängt. Gruss |
Re: TWebbrowser Cache leeren
Vielleicht hilft ja das?
Delphi-Quellcode:
WebBrowser1.Navigate(URL,NavNoReadFromCache);
|
Re: TWebbrowser Cache leeren
Zitat:
![]() |
Re: TWebbrowser Cache leeren
Zitat:
|
Re: TWebbrowser Cache leeren
Hallo Phil1977,
hatte vor einer weile das selbe Problem... hab dann beim suchen rausgefunden das TWebbrowser und und der Internet Explorer den selben Cache benutzen... Eine weitere Googlesuche später fand ich dann das: ![]() hoffe ich konnte helfen... beachte die Kommentare weiter unten auf der Seite da der Code auch Cookies löscht was natürlich nicht in allen Fällen erwünscht sein dürfte... Lösung dazu, wie gesagt, in den Kommentaren... lg paperboy |
Re: TWebbrowser Cache leeren
Cached-URL löschen nach dem Navigieren (etwas "dirty"...)
Delphi-Quellcode:
procedure NavigateNoHistory(WebBrowser: TEmbeddedWB; const URL: string);
function StrToChr(Str: string; Pos: Integer): Char; begin Result := Str[Pos]; end; var Flags: OleVariant; HistoryStg: IUrlHistoryStg; begin Flags := navNoHistory; WebBrowser.Navigate(WideString(URL), Flags); Wait(WebBrowser); HistoryStg := CreateComObject(CLSID_CUrlHistory) as IUrlHistoryStg; HistoryStg.DeleteUrl(PWideChar(StrToChr(URL, 0)), 0); end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz