Browser veranlassen, nach neuen Dateien zu suchen, diese aber nicht zwingend auch herunterzuladen
-
Der IE hat ja die blödsinnige Option "Neuere Versionen der gespeicherten Seiten suchen: Niemals".
Mit einem cache-control: no-cache sollte das aufgehoben sein, aber so wird dann ja immer neu runtergeladen.Ich meine es so, dass der Browser erst mal nur die Dateigröße oder Checksum prüft und mit der in seinem Cache vergleich, bei Veränderung dann neu runterlädt.
Das wäre doch eine total sinnvolle Option...
-
Hey, ich glaube, das passiert eh schon so.
Firefox 3.5 und IE 8 machen das gut, auch wenn im IE "...Niemals" eingestellt ist.Es wird, trotz cache-control: no-cache nicht immer neu heruntergeladen, außer die Datei ändert sich (bei gleichem Namen!).
Kann ich mich da drauf verlassen, dass die Browser immer nach neuen Dateien suchen? Ich erinnere mich an früher, da hatte ich glaube ich Probleme...
-
Hallo,
nein darauf sollte man sich nicht verlassen! Auch die Header-Anweisungen sind nicht immer zuverlässig! Irgendwo hab ich mal ein Tutorial gesehen in dem mit dem Dateinamen gespielt wurde?!
LG, Micha
-
<html> <head> <meta http-equiv="Last-Modified" content="Thu, 10 Sep 2009 11:37 GMT" /> </head> <body> ... </body> </html>
moderne Browser sollten das berücksichtigen und können entsprechend reagieren, darauf verlassen kann man sich natürlich nicht
-
Aha...
@zwutz
Und da muss ich dann manuell immer manuell das Datum eintragen?Und gilt das dann auch für Bilder?
-
Hellolo schrieb:
Und da muss ich dann manuell immer manuell das Datum eintragen?
wenn du die Datei eh änderst, dann kannst du dort auch mal eben das aktuelle Datum nachtragen. Du kannst aber statt
Last-Modified
auchExpires
angeben und statt dem Datum die Anzahl der Sekunden, die die Seite maximal im Cache liegen darfUnd gilt das dann auch für Bilder?
nein, die ändern sich in der Regel aber auch nicht
Bei dynamisch generierten Bildern kannst du aber eigene Header mitsenden (Beispiel PHP: http://php.net/header) oder du sorgst dafür, dass der Dateiname sich ändert, in dem du den aktuellen Timestamp (oder was anderes) an den Dateinamen als GET-Parameter anhängst (
<img src="images/bild.jpg?20090910140013" />
). Selbstverständlich muss der auch geändert werden, wenn das Bild neu geladen werden soll, wo dir aber eine Skriptsprache ebenfalls behilflich sein kann
-
zwutz schrieb:
nein, die ändern sich in der Regel aber auch nicht
Ach...
Ne, also, das ist mir wieder mal alles zu dumm. Ich mach einfach garnix, derjenige, der im IE "...Niemals" angehakt hat, ist selbst Schuld.
Dynamische Bilder (zB. eigenes captcha mit imagejpeg()) werden halt nach microtime() benannt.MfG
-
jemand, der so unpräzise sagt, was er will, sollte sich nicht wundern, wenn er nicht hört, was er gerne hören würde.
Caching ist bei dynamischen Inhalten kein triviales Thema, gewisse Bereitschaft zur Einarbeitung in die Mechanik sollte also vorhanden sein
-
Ich möchte einfach nur, dass ein Browser immer dann Dateien neu vom Server herunterlädt, wenn diese unterschiedlich zu denen im Cache sind.
Es soll halt immer die aktuelle Seite angezeigt werden, nicht aber immer alles neu runtergeladen werden (Bilder des Designs, ...).
-
Hellolo schrieb:
Ich möchte einfach nur, dass ein Browser immer dann Dateien neu vom Server herunterlädt, wenn diese unterschiedlich zu denen im Cache sind.
Es soll halt immer die aktuelle Seite angezeigt werden, nicht aber immer alles neu runtergeladen werden (Bilder des Designs, ...).was dazu zu tun ist, wurde bereits genannt.
Da du offensichtlich auch eine Skriptsprache nutzt, wird das ganze eh einfacher.Aber irgendwie muss der Browser ja wissen, ob er die Datei laden soll oder nicht. Entweder, du sagst es ihm im header (bei HTML-Dateien über den meta-tag, bei Bildern über die genannte PHP-Funktion) oder er lädt sich die Datei runter und vergleicht.
Dann kannst du natürlich auch auf Browser treffen, die den Header ignorieren und immer cachen bzw den Cache ignorieren. Zugegebenermaßen selten, aber es steht jedem Browser frei, wie er die Header interpretiert
Ach und vergiss Suchmaschinen nicht. Für die sind die meta-Angaben auch interessant
Wenn sich der Inhalt regelmäßig und oft auch recht schnell ändern kann, wäre es angebracht, den Cache zu deaktivieren (in Foren z. B.). Wenn du einen Blog betreibst, kannst du die Zeitangabe im Header auch anhand des Einstelldatums des letzten Artikels mittels php vollautomatisch eintragen.
Wenn du nur eine "Huhu, ich bins/wir sinds"-Seite hast, reicht es, das Datum nach jeder Änderung manuell zu ändern