PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Cache: no-cache why?



Lokutos
11.06.2010, 00:29
Hi mal wieder eine kleine frage meinerseits.

ich bin mir gerade am überlegen warum das vms folgenden header verwendet:
header("Cache-control: no-cache");

ist es sinvoll das die seite nicht gecacht werden kann??

werden so nicht auch alle css Dateien etc normal nicht in den cache geladen?

bin gerade ein bisschen am optimieren meiner seite und würde eigentlich gerne alle css Dateien JS und Images cachen und bin mir daher nicht ganz sicher.

Danke schon mal für die hilfreichen Antworten :biggrin1:

MFG Lokutos

neoplacer
11.06.2010, 11:42
Hi mal wieder eine kleine frage meinerseits.
header("Cache-control: no-cache");


Entscheidet das nicht eh der Browser, kenne fast keinen Browser, der sich an diese Cache Vereinbarungen noch hält. Wobei hier auch die Verbindungsdaten gelöscht werden sollen.

Zur Optimierung wenn du Traffic Sparen möchtest kannst du dieses zlib.output_compression_level verwenden. Müsste auch noch für PHP5 Funktionieren.
http://books.google.de/books?id=jyWdSfsvza4C&lpg=PA322&ots=bWs5imb6dY&dq=output_compression_level&pg=PA322#v=onepage&q=output_compression_level&f=false

Parl
11.06.2010, 13:49
Welche Einstellung hast du den momentan drin?

Am besten ist es einfach mal alle Möglichkeiten auszuprobieren, den Browsercache leeren, dann nur deine Seite einmal aufzurufen und nachgucken was gecached wurde (geht im Firefox mit about:cache)

Bei "Fetch Count" siehst du dann nach jedem Seitenaufruf welche Dateien neu eingelesen werden.

Auf meiner Seite ist das nur die main.css die jedes mal neugeladen wird, weiss aber meine eigenen Einstellungen geraden auch nicht. :biggrin1:

neoplacer
11.06.2010, 22:24
Welche Einstellung hast du den momentan drin?

Am besten ist es einfach mal alle Möglichkeiten auszuprobieren, den Browsercache leeren, dann nur deine Seite einmal aufzurufen und nachgucken was gecached wurde (geht im Firefox mit about:cache)

Bei "Fetch Count" siehst du dann nach jedem Seitenaufruf welche Dateien neu eingelesen werden.

Auf meiner Seite ist das nur die main.css die jedes mal neugeladen wird, weiss aber meine eigenen Einstellungen geraden auch nicht. :biggrin1:

Also bei meinen Opera, muss ich explizit noch mal F5 drücken, dass der eine neue CSS Datei läd. Das ist bei Entwickeln von Internetseiten ein wenig ein Problem, wenn man es aber weiß, kann man gleich noch mal f5 drücken oder permanent Neuladen aktivieren.

Lokutos
13.06.2010, 22:47
danke für die zahlreichen antworten

die Kompression ist eigentlich standardmässig bei mir drinn

Ich stell mir einfach die frage warum man nicht cachen lassen sollte (ist so im vms drinn)
daher eigentlich meine frage ob sich da wer was bei gedacht hat.

Lokutos
22.06.2010, 21:41
keiner ne idee?

jpwfour
22.06.2010, 22:05
Diese Angabe in der functions.lib.php bezieht sich nur auf die Ausgaben, die diese Datei auch durchlaufen, also definitiv nicht auf CSS/JS/Bilder etc.

Sprich nur die "normalen" Seitenaufrufe via der index.php

Wozu das Ganze? Theoretisch könnte ein Browser ja auf die Idee kommen, nur weil er gerade die Datei:
index.php?content=/konto/uebersicht
angefordert hat (Kontostand des Users: xx Lose), dass beim nächsten Aufruf die eh nicht anders sein kann, also nimmt er sie aus dem lokalen Cache, zeigt dem User also selbe Version wie vorher an, wobei sich der Kontostand schon längst geändert hat.

Machen die Brower heut aber meist nicht mehr, nimm die Zeile einfach mal raus, sollte sich nicht spürbar was ändern, der Browser fragt trotzdem jedesmal an. Theoretisch könnte der Server noch 304 Not Modified liederfn, sofern sich tatsächlich trotz des PHP Parsens nichts geändert hat, aber das wär auch reichlich Aufwand, das extra festzustellen.

Insofern kommt man kaum drumrum, dass bei jedem Seitenaufruf der komplette HTML Code übertragen wird, damit der User die Seite auch aktuell sieht (anders bei statischen HTML Seiten, aber wer hat sowas schon noch?)

EDIT:
interessant zum Thema Optimierung ist, wie oft der Server 304 antwortet, kann man normalerweise aus dem access_log rauslesen (lassen). Aber selbst wenn, jede Anfrage dauert schon und kostet Traffic, daher evtl:
http://www.vms-tutorial.de/wiki/CSS_Sprites
Wer nen root hat, kann auch die Header optimieren, sowas:

Server: Apache/2.2.3 (Debian) mod_python/3.2.10 Python/2.4.4 PHP/5.2.0-8+etch16 mod_ssl/2.2.3 OpenSSL/0.9.8c mod_perl/2.0.2 Perl/v5.8.8
bei jeder Anfrage muss echt nicht sein ^^