Cache problem

Joined
Feb 12, 2006
Messages
317
Reaction score
0
hey binz mal wieder,
ehmm hab ein problem lade auf mein webspace ne html hoch und dan wen ich es ersetze die html datei kommt das alte im browser wieder nun wollte ich wissen ob es einen java script oder html code oder irgendwas in der richtung gibt was die cache automatisch löscht sodas wen alle die seite betretten das es die akuellste html datei anzeigt?

www.Hanau-playaz.de.tt
 
Vielleicht ist es auch ein Problem des Browsers und dieser hat nicht bemerkt, dass die Seite geändert wurde. In dem Fall würde das Löschen des Browser-Cache was bringen.
 
ja aber ich kann die besucher nicht jedesmal auffordern chace zu löschen ...
 
btw wie hast du es geschafft, dass alles in EINEM Satz ohne Interpunktion zu verschachteln? :p

Die meisten User haben gar nicht solche strikten Cache-Einstellungen, als dass das ein Problem darstellen würde...
Also in meinen fast 5 Jahren webdesign-Erfahrung ists mir nich untergekommen... .oO
 
wie kann man den in der hp die chace einstellungen ändern, nen code habe ich gesucht aba bin net zu etwas funktinoierenden gekommen...
 
Last edited:
Nope, du kannst per Code nicht die individuellen Browsereinstellungen der User ändern...
 
mhhh also gibts keine lösung ? könnte ich das nicht alles auf php machn?
 
danke ;) ,ich werde das mal aus probieren und hier danach berrichten obs funktioniert hat.
 
wobei dies eher eine grobe anweisung darstellt, immerhin gilt:

[URL="http://www.w3.org/MarkUp/html-spec/html-spec_5.html#SEC5.2.5"]W3C - HTML2.0 - META[/URL] said:
The method by which the server extracts document meta-information is unspecified and not mandatory. The META element only provides an extensible mechanism for identifying and embedding document meta-information -- how it may be used is up to the individual server implementation and the HTML user agent.

A document or user interface is conforming whether this statement applies or not.

Hattest du denn vorher überhaupt einen Metatag der Art:
HTML:
<meta http-equiv="expires" content="">
gesetzt ??
 
vorher warn diese tags drinne
HTML:
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="Pragma" content="no-cache">
wobei das
HTML:
<meta http-equiv="Pragma" content="no-cache">
habe ich in google gefunden aber hat nix gebracht ....
 
Mal unter dem Vorbehalt, dass das System die Metatags auch annimmt.

HTML:
<meta http-equiv="Pragma" content="">
Würde das Cachen des Proxy-Servers ansteuern

HTML:
<meta http-equiv="cache-control" content="">
Würde das Cachen des Browsers ansteuern

HTML:
<meta http-equiv="expire" content="">
Würde die Dauer der Gültigeit des Seiteninhaltes gegenüber Browsern, Webcrawler, Spider, ... bestimmen

Zu beachten ist hierbei nur, dass keine dieser Angaben für ein System verpflichtend sind.

Daher lässt sich erkennen, dass du in deinem Browser scheinbar explizit einen Cache definiert hast, da er ja von selbst schon nur aus dem Cache geladen hat und nicht geprüft hat, ob neuer Inhalt vorhanden ist.
 
Daher lässt sich erkennen, dass du in deinem Browser scheinbar explizit einen Cache definiert hast, da er ja von selbst schon nur aus dem Cache geladen hat und nicht geprüft hat, ob neuer Inhalt vorhanden ist.
also muss ich die metatags entfernen ? oder wie meinst du das
 
Nein, es ist schon sinnvoll die Metatags drin zu lassen, da sie ja doch von einigen Browsern interpretiert werden.

Ich meinte eher, dass dein Browser scheinbar so eingestellt ist, sofern dort keine Meta angabe gemacht wurde, dass er nicht sofort die Seite neu lädt.
Dies würde ich ändern, da dir sonst ggf. auch Informationen auf anderen Seiten vorenthalten werden, weil du immer noch Daten aus deinem Cache aufrufst.
 
ich hab mal firefox dursucht nach cache optionen und nichts gefunden nur die option "es werden bis zu '50' mb Speicherplatz als cache verwendet"
 
tipp mal in deine URL folgendes ein:

about:config

dann such den Wert "browser.cache.check_doc_frequency" raus ( kannst es auch oben in den Filter eingeben ).

Dort steht warscheinlich die 3. Wenn dem so ist richtet er sich nach dem Metatag "expire".
Wenn du dies auf 1 stellst wird er immer schauen, ob es eine neuere Version als die im Cache gibt ;)

http://www.firefox-browser.de/wiki/Cache
 
Dauerhaft statischen Text über eine serverseitige Scriptsprache zu lösen halte ich für sehr fragwürdig.

Und wenn man es schon so machen will, dann soll man es bitte auch richtig machen.

PHP:
@ini_set('zlib.output_compression', 'Off');

if (@ini_get('output_handler') == 'ob_gzhandler' AND @ob_get_length() !== false)
@ob_end_clean();
header('Content-Encoding:');

header('ETag: PUB' . time());
header('Last-Modified: ' . gmdate('D, d M Y H:i:s', time()-10) . ' GMT');
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 5) . ' GMT');
header('Pragma: no-cache');
header('Pragma: public');
header('Cache-Control: max-age=1, s-maxage=1, no-cache, must-revalidate');
header('Cache-Control: public');
session_cache_limiter('nocache');

session_start();

Links zum PHP Manual


Aber solch eine Lösung halte ich für SEHR fragwürdig.

Schauen wir uns lieber etwas über HTML 2.0 und HTTP/1.1 an.

[URL="http://www.w3.org/MarkUp/html-spec/html-spec_5.html#SEC5.2.5"]W3C - HTML2.0 - META[/URL] said:
HTTP-EQUIV
binds the element to an HTTP header field. An HTTP server may use this information to process the document. In particular, it may include a header field in the responses to requests for this document: the header name is taken from the HTTP-EQUIV attribute value, and the header value is taken from the value of the CONTENT attribute. HTTP header names are not case sensitive.

Links zu Definitonen nach RFC 2616

Generell sollte man aber immer noch folgendes beachten im Umgang mit Expires:

[URL="http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1"]W3C - HTTP/1.1 - DATE/TIME - Full Date[/URL] said:
HTTP applications have historically allowed three different formats for the representation of date/time stamps:

Sun, 06 Nov 1994 08:49:37 GMT ; RFC 822, updated by RFC 1123
Sunday, 06-Nov-94 08:49:37 GMT ; RFC 850, obsoleted by RFC 1036
Sun Nov 6 08:49:37 1994 ; ANSI C's asctime() format

[URL="http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.2"]W3C - HTTP/1.1 - DATE/TIME - DELTA SECONDS[/URL] said:
Some HTTP header fields allow a time value to be specified as an integer number of seconds, represented in decimal, after the time that the message was received.

delta-seconds = 1*DIGIT


Gerade hier würde ich sagen sieht man, wo sich die Streu vom Weizen trennt, denn schließlich macht ein simples HTML-Gerüst noch keinen zum Programmierer ...
Sorry, aber ich haben was gegen "Hilfen" wie auf der dreamcodes Seite ...
 
Back
Top