Hallo! Ich programmiere im Visual Studio 2010 in C# und verwende das webbrowser control. Damit rufe ich eine dynamische php seite auf und übergebe parameter. zb: www.meinedomain.com/file.php?wert=10 dies geschieht öfters hintereinander (schleife). nun hab ich das problem, dass wenn die url seit programmstart schon einmal aufgerufen wurde und noch einmal aufgerufen werden sollte (wenn zum beispiel der "wert" der gleiche ist, dass dieses blöde control aus dem cache lädt, und die seite nicht mehr aus dem netz bezieht. der webserver empfängt die daten also nicht. kann ich den cache umgehen? im netz find ich keine infos dazu. ein löschen des IE caches (das controll bettet im prinzip ja nur den IE ein) oder eine änderung der IE konfiguration kommt nicht in frage, da ich die software weitergeben will und die empfänger evtl den IE nutzen bzw den cache aus gutem grund aktiviert haben. wie kann ich das webbrowser control zwingen die seite jedes mal aus dem netz zu beziehen? grüße
Wie rufst du's auf? "Navigate"? Und vor allem, wie sieht der Response Header aus? Der von file.php zurück kommt?
ja mit navigate. das ganze system ist noch im aufbau, webserverseitig ist noch nicht viel gemacht, deshalb lasse ich mir einfach die aktuelle urzeit zurückgeben, dann sehe ich ob die seite neu geladen wurde oder aus dem cache kommt.
versuch mal das hier (schön mit header und so...) und sag deinem Browser, er soll doch bitte nichts cachen <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="pragma" content="no-cache"/> <meta http-equiv="expires" content="0"/> </head> <body> <?php echo $dieUhrzeit; ?> </body> </html> schönen Gruß
ok, super, das funktionier mal. danke! ein großteil ist nun schon mal geschafft. Nun hab ich zusätzlich noch eine kommunikation zu einem externen sms gateway, welches ich nicht beeinflussen kann. das application interface ist genau gleich wie bei meinem webserver, also wird einfach über die adresse übergeben. von diesem gateway erhalte ich allerdings nur eine zahl ("100") wenn der versand klappt. ohne header, ohne body, ohne irgendwelche HTML zeilen. nur "100" im klartext. wie gehe ich hier vor?
ich denke ich hab es jetzt gelöst, auch wenn das vielleicht nicht die schönste variante ist. ich übergebe eine weitere variable, zb "dummy", welche eine fortlaufende zahl darstellt. die URL ist also jedes mal ein wenig anderst, das webbrowser controll ist gezwungen die seite aus dem netz zu holen. trotzdem danke für die hilfe, grüße
Hallo, hast du es schon mal mit Refresh versucht. http://msdn.microsoft.com/de-de/library/txewax99(VS.80).aspx fz
refresh kann nur die aktuelle seite neu laden. aber sagen wir ich rufe die url mit folgenden werten auf: 10 20 30 40 10 dann würde der zweite 10er aus dem cache geladen werden, mit einem refresh würde ich allerdings den 40er laden.
willst du nur webseiten aufrufen- oder damit wirklich das surfen ermöglichen? Also soll die webseite im Frontend dargestellt werden oder nur im Backend verarbeitet werden? Wenn nur Backend kann ich dir bei Bedarf ne fertige wget Methode zuschicken die einfach nen string der page zurück gibt.
du kannst auch einfach immer einen zusätzlichen Parameter anhängen z.B.
1 | www.meinedomain.com/file.php?wert=10&_time=(current timestamp) |
Das Skript stört sich nicht daran und die seite ist jedesmal "neu" für den IE.
Naja Sinn macht der tolle Cacheehh nur bei Bildern, Webseiten sind vergleichweise mickrig ja
transistorflüsterer schrieb: > dann würde der zweite 10er aus dem cache geladen werden, mit einem > refresh würde ich allerdings den 40er laden. warum würde er den 40er laden? Laut msdn müsste er den 10er neu laden: >Wenn das Steuerelement zu einer Seite navigiert, zeigt es aus Gründen der >Beschleunigung eine Version aus dem Cache an (sofern verfügbar), anstatt >die Seite erneut zu downloaden. Die Refresh-Methode zwingt das WebBrowser- >Steuerelement, die aktuelle Seite durch Downloaden erneut zu laden, sodass >die neueste Version angezeigt wird.
Verwende doch die Klasse WebClient und davon die Methode DownloadString(..) das WebBrowserControl ist doch overkill?!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.