Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: problem z cachem obrazkow
Forum PHP.pl > Forum > Przedszkole
slash.
w jaki sposob wymusic na IE zeby nie trzymal cache obrazkow w swojej pamieci podrecznej - probowalem roznych rzeczy wlacznie z czyms takim
  1. <?php
  2.  header(&#092;"Expires: Sat, 01 Jan 2000 00:00:00 GMT\");
  3.  header(&#092;"Last-Modified: \".gmdate(\"D, d M Y H:i:s\").\" GMT\");
  4.  header(&#092;"Pragma: private\");
  5.  header(&#092;"Expires: 0\");
  6.  header(&#092;"Cache-Control: must-revalidate, post-check=0, pre-check=0\");
  7.  header(&#092;"Cache-Control: private\"); 
  8. ?>

ale zawsze chowa obrazek do teleportary internet files
i z tamtad go otwiera nawet jezeli sie zmienil oryginalny na serwerze - jak wymusic na nim zeby go odswiezal za kazdym razem questionmark.gif
Kshyhoo
Trzeba trochę poszukać a nie od razu pytać. Ja znalazłem coś takiego:
Cytat
Cache'owanie stron

Czasami zdarza się, że potrzebujemy, aby nasza strona, lub konkretny dokument, dostępny był tylko on-line. Nigdy nie da się tego zrobić w 100% skutecznie, ale można zapobiec cache'owaniu strony przez przeglądarkę i serwery proxy. Blokowanie cache'owania dokumentu przez przeglądarkę jest dość proste. Wykonuje się to przy pomocy tzw. ekwiwalentów HTTP czyli odpowiednich nagłówków META w dokumencie. Te nagłówki należy umieścić w sekcji HEAD strony.

  1. <meta name="Pragma" content="no-cache" />
  2. <meta name="Cache-Control" content="no-store, no-cache, must-revalidate" />


Istnienie dwóch różnych nagłówków spowodowane jest różnicą między protokołem HTTP/1.0 a HTTP/1.1. Pierwszy nagłówek odnosi się do HTTP/1.0, a drugi do HTTP/1.1. Niestety nie ma mowy, żeby to zawsze odnosiło skutek. Niektóre przeglądarki mogą po prostu to ominąć nie zważając na nakazy. Tak samo serwery proxy. Ten sposób nie zadziała na nie, ponieważ one nie sprawdzają treści dokumentu.

Dużo skuteczniejszym sposobem, jest wysłanie odpowiednich nagłówków HTTP do przeglądarki/serwera proxy. Można to wykonać tylko przy pomocy jakiegoś języka wykonywanego po stronie serwera np. php. Wygląda to tak:

  1. <?php
  2. header(&#092;"Cache-Control: no-store, no-cache, must-revalidate\"); // HTTP/1.1
  3. header(&#092;"Cache-Control: post-check=0, pre-check=0\", false);
  4. header(&#092;"Pragma: no-cache\"); // HTTP/1.0
  5. ?>


(Przykład zaczerpnięty z dokumentacji php)

Przy korzystaniu z tego sposobu przeglądarka otrzyma od serwera polecenie niezachowywania lokalnej kopii, a serwer proxy przepuści tą stronę do użytkownika bez jej cache'owania.

Muszę zauważyć tutaj jedną bardzo istotną rzecz. Mianowicie, wiele osób może pomyśleć, że w ten sposób nikt nie zapisze ich strony na dysk. Nie jest to prawda. Strona bez żadnych oporów zostanie zapisana przez przeglądarkę, ale nie będzie dostępna w tzw. "trybie offline" i za każdym razem ponownie ładowana z serwera.

Ale po co to robić? Zdarza się, że niektóre dane na stronie są dość często aktualizowane, przez co niektóre osoby ze źle skonfigurowanymi przeglądarkami, albo korzystający z serwerów proxy będą miały serwowaną starą wersję dokumentu. Jednak musimy mieć na uwadze fakt, że przez takie wymuszenie transfer z naszej strony może wysoko wzrosnąć, przez co tracimy cenne megabajty z limitów. Ale czasami sytuacja wymaga...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.