[php] Vypršení platnosti stránky

C++, C#, Visual Basic, Delphi, Perl a ostatní

Moderátor: Moderátoři Živě.cz

Odeslat příspěvekod deric 9. 9. 2005 10:42

Zdravím,
nevíte jakým způsobem můžu nastavit, aby prohlížeč nepoužíval cache? Mám stránku která generuje grafy a nastavil jsem meta tagy:
<meta http-equiv="cache-control" content="no-cache" />
<meta http-equiv="pragma" content="no-cache" />

Pak jsem zkoušel posílat header("Cache-control: no-cache, must-revalidate") přes php, ale taky to nemá žádný efekt. Server běží na apache 2.0.54/php 5.0.2. Pokud zadám v prohlžečí reload, tak se to načte v pořádku, ale při kliknutí na odkaz se načítají staré data.
deric
Junior

Odeslat příspěvekod malcolmX 9. 9. 2005 11:16

zkuste jeste
meta http-equiv="expires" content="0"

resp podivejte se treba zde
http://www.web-caching.com/
malcolmX
Junior

Odeslat příspěvekod Lemur 9. 9. 2005 13:51

Meta equiv je to same jako hlavicka (proto equiv), aby byla stranka opravdu necachovatelna, je treba trochu http magie jako data v minulosti a podobne. Jako treba tohle:
Kód: Vybrat vše
header("Pragma: no-cache");
header("Cache-control: private");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0",false);
header("Expires: Mon, 26 Jul 2001 05:00:00 GMT");
header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT");
Lemur
VIP uživatel
Uživatelský avatar

Odeslat příspěvekod deric 9. 9. 2005 17:47

Díky za radu, ale zdá se, že je to neúčinné :( Nevím, jestli je něco jiného cachování obrázků než textu, ale v tomto případě mi pořád najíždějí neaktuální grafy. Když tam přidám auto refresh, tak to samozřejmě funguje,ale to mi nepiřpadá jako nejlepší řešení. Ještě jsem zkoušel soubory .htaccess:
Kód: Vybrat vše
### activate mod_expires
ExpiresActive On

ExpiresDefault "now"
ExpiresByType image/png now
### Apply a Cache-Control header to index.html
<Files all>
Header append Cache-Control "public, must-revalidate"
</Files>


Mám to správně?
deric
Junior

Odeslat příspěvekod Katulus 10. 9. 2005 00:03

Jestli máš grafy jako obrázky a mají pořád stejný název, tak záleží na nastavení prohlížeče. Ty HTTP hlavičky říkají, že se má načíst nová stránka, tzn. zdroj stránky, ale obrázky si prohlížeč může brát z vlastní cache.
Odi et amo.
Katulus
Junior

Odeslat příspěvekod Lukáš Mach 15. 9. 2005 14:50

mozna tohle:

<meta http-equiv="Cache-Control" content="must-revalidate, post-check=0, pre-check=0" />
<meta http-equiv="Pragma" content="public" />
<meta http-equiv="Cache-Control" content="no-cache" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="-1" />
I still trust Half-blood Prince.
Lukáš Mach
Junior
Uživatelský avatar

Odeslat příspěvekod roman77 15. 9. 2005 15:54

obrazek pojmenuj "obrazek.jpg?time=845315313", takhle to funguje a nenatahuje to z cache, protoze to ma pokazdy jinej nazev.
roman77
Kolemjdoucí

Odeslat příspěvekod deric 25. 9. 2005 13:01

to by me teda fakt nepapadlo:) nejsem si jisty jestli je to validni..;) sice jsem to nezkousel, ale diky za radu. nakonec posilam binarni vystup primo do <img src="xx"/> a je to i mnohem rychlejsi. kdybyste nekdochteli script, toz si napiste
deric
Junior

Odeslat příspěvekod Ladik 25. 9. 2005 13:26

deric píše:to by me teda fakt nepapadlo:) nejsem si jisty jestli je to validni..;) sice jsem to nezkousel, ale diky za radu. nakonec posilam binarni vystup primo do <img src="xx"/> a je to i mnohem rychlejsi. kdybyste nekdochteli script, toz si napiste


tak to sem dej rovnou - muze se to hodit ostatnim, az nekdy na podobny problem narazi
Ladik
Kolemjdoucí


Kdo je online

Uživatelé procházející toto fórum: Žádní registrovaní uživatelé a 0 návštevníků