mikrocontroller.net

Forum: PC-Programmierung C# - webbrowser kein cache


Autor: transistorflüsterer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Christian R. (mrrotzi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie rufst du's auf? "Navigate"?
Und vor allem, wie sieht der Response Header aus? Der von file.php 
zurück kommt?

Autor: transistorflüsterer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Christian R. (mrrotzi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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-transitiona...;
<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ß

Autor: transistorflüsterer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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?

Autor: transistorflüsterer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: fz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

hast du es schon mal mit Refresh versucht.

http://msdn.microsoft.com/de-de/library/txewax99(VS.80).aspx

fz

Autor: transistorflüsterer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Marcus B. (raketenfred)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Läubi .. (laeubi) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
du kannst auch einfach immer einen zusätzlichen Parameter anhängen z.B.
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.

Autor: Marcus B. (raketenfred)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Naja Sinn macht der tolle Cacheehh nur bei Bildern, Webseiten sind 
vergleichweise mickrig ja

Autor: fz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Christian R. (mrrotzi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Verwende doch die Klasse WebClient und davon die Methode 
DownloadString(..)

das WebBrowserControl ist doch overkill?!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.