Próbuję przetestować jakąś konfigurację buforowania, chcę moją stronę pozostać w pamięci podręcznej przez 1 minutę, zanim dotrze do serwera żądanie ponownie.Przeglądarki zdają się ignorować instrukcji odpowiedź Cache-Control
Stosując tę prostą stronę Test.asp że ma link do siebie:
<% Option Explicit %>
<%
Response.Expires = 1
Response.CacheControl = "private, max-age=60"
%>
<html>
<head><title>test</title></head>
<body>
<% =Now() %>
<br />
<a href="test.asp">test</a>
</body>
</html>
Działa to doskonale na moim komputerze rozwoju http://localhost/test.asp (kliknięcie linku nie odświeżyć wydrukowany datetime w ciągu 1 min).
Jednak nie pożądany efekt, kiedy umieścić stronę na serwerze produkcyjnym. Po kilku sekundach kliknięcia linku otrzymuję nowy datetime, co oznacza, że żądanie dotarło do serwera WWW.
używam narzędzia dev Chrome i zobaczyć te nagłówki odpowiedzi:
HTTP/1.1 200 OK
Cache-Control: private, max-age=60
Content-Type: text/html
Expires: Tue, 12 May 2015 19:16:52 GMT
Last-Modified: Tue, 12 May 2015 19:10:00 GMT
Server: Microsoft-IIS/7.5
X-Powered-By: ASP.NET
Date: Tue, 12 May 2015 19:15:55 GMT
Content-Length: 205
Czy ktoś może pomóc wyjaśnić, dlaczego to nie działa na serwerze prod?
aktualizacja Próbowałem z Chrome, Firefox i IE, a także 2 stron Test.asp i test2.asp, zarówno o link do innej strony, i dostaliśmy dokładnie ten sam problem, po 8-12 sek , strona odświeża się zamiast czekać 60 sekund przed odświeżeniem.
Jak testujesz? Odśwież w tej samej karcie? Może to być problem z chromem: http://stackoverflow.com/questions/11245767/is-chrome-ignoring-control-cache-max-age Przyczyną działania w środowisku deweloperów może być to, że Chrome wykonuje fajne rzeczy z W każdym razie URL "localhost". – AardVark71
Testuję klikając hiperłącze na stronie testowej, która łączy się z samym sobą. Użycie przycisku odświeżania zawsze wysyła żądanie do serwera, który jest logiczny. Spróbuję z innymi przeglądarkami, a także może z więcej niż jedną stroną. – Jonathan
Świetnie! teraz, kiedy właśnie rozpocząłem nagrodę i spróbowałem ponownie tego samego kodu, problem zniknął w magiczny sposób, co do cholery: | – Jonathan