-
1. Data: 2009-01-13 12:07:54
Temat: Przeglądarki zbyt mocno keszują
Od: Maciej Łebkowski <m...@e...com>
Witam,
Wstawiłem na stronie mechanizm wspomagający cache przeglądarek.
Konkretnie, polegało to na wstawieniu nagłówków:
ETag: md5(content)
Last-Modified: date(r, filemtime(plik z contentem))
Date: date(r)
Expires: date(r, strtotime(+10 minutes))
Wszystkie wartości są dobrze przekazywane (tzn, jesli content sie
zmieni, to faktycznie zmienia sie etag i odpowiednio last-modified)
Efekt, jaki obserwuję:
Firefox, czasami (nie wiem dokładnie kiedy), w ogóle nie wykonuje
zapytania do serwera (LiveHTTP headers milczy, log apache rowniez).
Rozumiem, że jest to naturalne zachowanie, gdyż wysyłany jest
dziesieciominutowy czas wygasniecia (Expire). Dziwi mnie jednak,
ze dzieje sie tak tylko czasami - raz czesciej, raz rzadziej. Nie
udało mi się odnaleźć żadnej sensownej zależności.
Problem: wysyłanie komentarza
Po dodaniu komentarza, user ląduje na "thank you page", z ktorej
moze sie cofnac do komentowanej strony. Ta oczywiście jest ciągnięta
z cache i user jest zmieszany (hej, gdzie moj komentarz?!). Aby tego
uniknąć, odpowiedz na POST-a wygląda mniej wiecej tak:
HTTP/1.x 302 Found
Date: Tue, 13 Jan 2009 11:37:11 GMT
Location: thankyou.html
Expires: -1
Pragma: no-cache
Cache-Control: no-cache
Jednak przeglądarka nic sobie z tego nie robi - nadal pobiera strone
z cache. Zaobserwowane na Safari i Firefoksie, więc podejrzewam, ze
robię coś źle.
Mógłbym zmienić adres, do ktorego wraca user (jakiś ?bust dodać), ale
kłóci się to z zasadą "jeden wpis, jeden adres".
Jak więc w takim modelu zasugerować odświeżenie informacji o stronie?
--
Maciej Łebkowski
-
2. Data: 2009-01-13 12:26:50
Temat: Re: Przeglądarki zbyt mocno keszują
Od: pasman <p...@o...pl>
On 13 Sty, 13:07, Maciej Łebkowski <m...@e...com>
wrote:
> Witam,
>
> Wstawiłem na stronie mechanizm wspomagający cache przeglądarek.
> Konkretnie, polegało to na wstawieniu nagłówków:
> ETag: md5(content)
> Last-Modified: date(r, filemtime(plik z contentem))
> Date: date(r)
> Expires: date(r, strtotime(+10 minutes))
> Wszystkie wartości są dobrze przekazywane (tzn, jesli content sie
> zmieni, to faktycznie zmienia sie etag i odpowiednio last-modified)
>
> Efekt, jaki obserwuję:
> Firefox, czasami (nie wiem dokładnie kiedy), w ogóle nie wykonuje
> zapytania do serwera (LiveHTTP headers milczy, log apache rowniez).
> Rozumiem, że jest to naturalne zachowanie, gdyż wysyłany jest
> dziesieciominutowy czas wygasniecia (Expire). Dziwi mnie jednak,
> ze dzieje sie tak tylko czasami - raz czesciej, raz rzadziej. Nie
> udało mi się odnaleźć żadnej sensownej zależności.
>
> Problem: wysyłanie komentarza
> Po dodaniu komentarza, user ląduje na "thank you page", z ktorej
> moze sie cofnac do komentowanej strony. Ta oczywiście jest ciągnięta
> z cache i user jest zmieszany (hej, gdzie moj komentarz?!). Aby tego
> uniknąć, odpowiedz na POST-a wygląda mniej wiecej tak:
>
> HTTP/1.x 302 Found
> Date: Tue, 13 Jan 2009 11:37:11 GMT
> Location: thankyou.html
> Expires: -1
> Pragma: no-cache
> Cache-Control: no-cache
>
> Jednak przeglądarka nic sobie z tego nie robi - nadal pobiera strone
> z cache. Zaobserwowane na Safari i Firefoksie, więc podejrzewam, ze
> robię coś źle.
> Mógłbym zmienić adres, do ktorego wraca user (jakiś ?bust dodać), ale
> kłóci się to z zasadą "jeden wpis, jeden adres".
>
> Jak więc w takim modelu zasugerować odświeżenie informacji o stronie?
>
> --
> Maciej Łebkowski
dziwne, w nIEpewnym to działa:
<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
pasman
-
3. Data: 2009-01-13 12:34:45
Temat: Re: Przeglądarki zbyt mocno keszują
Od: Ramok <c...@c...com>
Maciej Łebkowski pisze:
> HTTP/1.x 302 Found
> Date: Tue, 13 Jan 2009 11:37:11 GMT
> Location: thankyou.html
> Expires: -1
> Pragma: no-cache
> Cache-Control: no-cache
>
> Jednak przeglądarka nic sobie z tego nie robi - nadal pobiera strone
> z cache.
Ale ktora strone?... To co tu ustawiasz dotyczy strony thankyou.html, a
Ty opisujesz problem z cache-owaniem strony wczesniejszej/nastepnej.
Chyba, ze cos zle zrozumialem?
/Ramok
-
4. Data: 2009-01-13 12:35:17
Temat: Re: Przeglądarki zbyt mocno keszują
Od: Maciej Łebkowski <m...@e...com>
Dnia 13-01-2009 o 13:26:50 pasman <p...@o...pl> napisał(a):
[snip]
> dziwne, w nIEpewnym to działa:
> <META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">
Ale sprawdzileś chociaż? Bo wcale nie działa. Gorzej - IE nie
ma takich wahań nastroju i *zawsze* ciągnie strone z cache.
--
Maciej Łebkowski
-
5. Data: 2009-01-13 12:53:49
Temat: Re: Przeglądarki zbyt mocno keszują
Od: pasman <p...@o...pl>
> Ale sprawdzileś chociaż? Bo wcale nie działa. Gorzej - IE nie
> ma takich wahań nastroju i *zawsze* ciągnie strone z cache.
>
> --
> Maciej Łebkowski
no to znaczy ze jeszcze masz jakies bugi w naglowkach.
albo po prostu niektorzy klienci wyłączyli odświeżanie
w przegladarce.
pasman
-
6. Data: 2009-01-13 13:08:51
Temat: Re: Przeglądarki zbyt mocno keszują
Od: pasman <p...@o...pl>
On 13 Sty, 13:53, pasman <p...@o...pl> wrote:
> > Ale sprawdzileś chociaż? Bo wcale nie działa. Gorzej - IE nie
> > ma takich wahań nastroju i *zawsze* ciągnie strone z cache.
>
> > --
> > Maciej Łebkowski
>
> no to znaczy ze jeszcze masz jakies bugi w naglowkach.
> albo po prostu niektorzy klienci wyłączyli odświeżanie
> w przegladarce.
>
> pasman
i jeszcze wrzucam Expires takie jak Date
pasman
-
7. Data: 2009-01-13 13:16:09
Temat: Re: Przeglądarki zbyt mocno keszują
Od: Maciej Łebkowski <m...@e...com>
Dnia 13-01-2009 o 13:34:45 Ramok <c...@c...com> napisał(a):
>> HTTP/1.x 302 Found
>> Date: Tue, 13 Jan 2009 11:37:11 GMT
>> Location: thankyou.html
>> Expires: -1
>> Pragma: no-cache
>> Cache-Control: no-cache
>> Jednak przeglądarka nic sobie z tego nie robi - nadal pobiera strone z cache.
> Ale ktora strone?... To co tu ustawiasz dotyczy strony thankyou.html, a
> Ty opisujesz problem z cache-owaniem strony wczesniejszej/nastepnej.
> Chyba, ze cos zle zrozumialem?
wysyłam POST na strone /artykul (ta jest keszowana).
W odpowiedzi zwracam Expire: -1 i Location: thankyou.
Jeśli to faktycznie oznacza, że przeglądarka odnosi
te nagłówki do thankyou, a nie do /artykul, to mamy
odpowiedz na pytanie dlaczego, ale nadal nie wiadomo
jak zrobic, zeby dzialalo.
--
Maciej Łebkowski
-
8. Data: 2009-01-13 13:18:54
Temat: Re: Przeglądarki zbyt mocno keszują
Od: Maciej Łebkowski <m...@e...com>
Dnia 13-01-2009 o 13:53:49 pasman <p...@o...pl> napisał(a):
>> Ale sprawdzileś chociaż? Bo wcale nie działa. Gorzej - IE nie
>> ma takich wahań nastroju i *zawsze* ciągnie strone z cache.
> no to znaczy ze jeszcze masz jakies bugi w naglowkach.
> albo po prostu niektorzy klienci wyłączyli odświeżanie
> w przegladarce.
Wszystkie nagłówki, które wysyłam ja, wymieniłem.
Czy są "zbugowane"? Nie sądzę.
Przeglądarka chodzi na standardowych ustawieniach,
poza tym dzieje się to w większości - IE, Fx, Safari...
Opery nie testowalem.
--
Maciej Łebkowski
-
9. Data: 2009-01-13 15:42:01
Temat: Re: Przeglądarki zbyt mocno keszują
Od: ethanak <s...@b...pl>
Dnia Tue, 13 Jan 2009 14:16:09 +0100, Maciej Łebkowski napisał(a):
> [...]
> wysyłam POST na strone /artykul (ta jest keszowana).
Że co???
ethanak
--
mailto=window.atob('ZXRoYW5ha0Bwb2xpcC5jb20=');
http://milena.polip.com/ - nie czekam na Ivo!
-
10. Data: 2009-01-13 16:34:24
Temat: Re: Przeglądarki zbyt mocno keszują
Od: Maciej Łebkowski <m...@e...com>
Dnia 13-01-2009 o 16:42:01 ethanak <s...@b...pl> napisał(a):
>> wysyłam POST na strone /artykul (ta jest keszowana).
> Że co???
Wczytaj się w kontekst zamiast krzyczeć. :P
/artykul jest skeszowana u usera. Nie mówię,
że jest keszowana w momencie wysłania POST. ;P
--
Maciej Łebkowski