Autor | Zpráva | ||
---|---|---|---|
quatzael Profil |
Zrovna řeším naprostou záhadu..
Na jedné stránce mám výpis položek z databáze. Klasicky pomocí SELECT . Vybírám jen ty, které nejsou smazány, takže tam mám něco jako:
WHERE status <> 'deleted' No a potom když klasickou navigací (přes <a> čka) přejdu na původní stránku, kde je ten výpis položek z databáze tak ta položka tam je pořád zobrazena.. Refreshnu stránku a až teprve potom zmizí..
Napadlo mě, že by nějak možná prohlížeč si uchovával stránku a automaticky nenačítal nový data, když tam jen tak přejdu pomocí <a> .
Tak jsem udělal pokus, klasicky jsem v IE smazal jednu položku, v phpMyAdmin jsem zkontroloval, že je opravdu smazaná (označená jako 'deleted' ) a pak jsem si otevřel Chrome, najedu na stránku s výpisem položek a zase tam je ta smazaná položka normálně zobrazená. Zase refreshnu a je pryč..
A takhle se to pořád chová.. Ověřoval jsem jestli náhodou tam nemám někde ten výsledek z databáze nějak uloženej v SESSION , ale opravdu ne..
A ten seznam položek normálně vypisuju pomocí cyklu while .. Fakt nevím čím by to mohlo být..
Nenapadá někoho něco? |
||
Taps Profil |
#2 · Zasláno: 5. 6. 2014, 14:15:22
Dela to i ve firefoxu? Mozna bude problem ns urovni cachovani dat
|
||
quatzael Profil |
To jsem nezkoušel. Teď jsem mimo komp, takže to večer zkusím.. A da se to teda nějak ovlivnit, když to dělají prohlížeče?
Ale stejně nechápu jak za to může cachovani..?! Vždyť přece IE Chromu nic nepředává.. Ale popisoval jsem přece, že to funguje tak, že smažu položku v IE, potom si spustím úplně nově Chrome, otevřu si tu stránku s tím seznamem a ta položka tam je zobrazená. Refreshnu Chrome a už tam není.. Nechápu jak tohle může souviset s cachovanim na straně prohlížeče.. To spíš, že by bylo něco na straně serveru.. |
||
Kajman Profil |
#4 · Zasláno: 5. 6. 2014, 15:17:51
Na stránce s výpisem zkuste zakázat http hlavičkami cachování. Tím by se mělo vyřadit cachování na straně prohlížeče a případného proxy serveru.
|
||
quatzael Profil |
#5 · Zasláno: 5. 6. 2014, 15:32:15 · Upravil/a: quatzael
Kajman:
Jak se to dělá? Ale prostě stejně pořád nechápu jak to může ovlivňovat cache, když Chrome jsem neměl nijak zapnutej, a čekal bych, že mi zobrazí položky podle aktuálního stavu databáze. A ne podle toho co IE uloží do cache. Přece není jednotná cache pro všechny prohlížeče, každý má svojí vlastní cache, nebo ne? |
||
Kajman Profil |
#6 · Zasláno: 5. 6. 2014, 16:15:54
|
||
Taps Profil |
quatzael:
Jsem zvedavy jak se ti bude chovat firefox. Pokud se bude chovat rozdilne nez chrome a ie tak to bude v cachovani |
||
quatzael Profil |
#8 · Zasláno: 5. 6. 2014, 20:11:26 · Upravil/a: quatzael
Taps:
Tak akorát jsem to vyzkoušel v tom Firefoxu a je to úplně stejný.. V IE jsem smazal položku, spustil jsem Firefox, doklikal na stránku s tím výpisem a zase tam je ta smazaná.. Čili úplně stejný.. Aha, tak vyřešeno. Měl jsem úplně na začátku scriptu (po session_start() ) tuhle srandu:
header_remove('Cache-Control'); header_remove('Expires'); header_remove('Pragma'); Ve všech index.php skriptech mám hned includovaný skripty ven mimo veřejnou složku, takže jsem si toho prve nevšiml.. Nějak se tam prostě tohle zatoulalo.. |
||
Časová prodleva: 10 let
|
0