2011-06-26 8 views
19

Chciałbym przedstawić użytkownikowi zawsze najnowszą zawartość strony internetowej, ale także szybko ją załadować. Podczas badania natknąłem się na posty sugerujące użycie pamięci podręcznej do przyspieszenia ładowania.HTML - Kontrola pamięci podręcznej maks. Wiek

Co muszę dodać do mojej witryny, aby "zastąpić" pamięć podręczną po 3 dniach, aby wyświetlić najnowszą zawartość?

+1

czy używasz wordpress? drupal? masz bazę danych? buforowanie nie jest tak rozcięte i suche, jak się wydaje, że jest ... – Trey

+0

Przepraszamy. Używam prostej strony PHP bez CMS. – Uli

Odpowiedz

11

Jest więcej niż jeden sposób, aby to zrobić - ale musisz wziąć pod uwagę dokładnie to, czego potrzebujesz do buforowania, a czego nie. Największy wzrost prędkości prawdopodobnie wynika z upewnienia się, że zasoby (css, obrazy, javascript) są buforowane, a nie sam html. Następnie musisz przyjrzeć się różnym czynnikom (jak często zmieniają się te zasoby, w jaki sposób zmusisz użytkownika do pobrania nowej wersji pliku, który zmienisz?).

Często jako część procesu uwalniania witryn nowe pliki (zaktualizowane pliki) otrzymują nową nazwę pliku, aby zmusić przeglądarkę użytkowników do ponownego pobrania pliku, ale jest to tylko jedno podejście.

Powinieneś rzucić okiem na apache mod_expire, a także ustawić czasy wygaśnięcia dla zasobów przy użyciu pliku .htaccess.

http://www.google.com/?q=apache+cache+control+htaccess#q=apache+cache+control+htaccess

+0

Czy poprawnie rozumiem, że wystarczy dodać ten kod do pliku .htaccess moich serwerów, aby umożliwić buforowanie plików przez 3 dni? '# 3 DAYS Zestaw nagłówków Cache-Control" max-age = 259200, revalidate proxy " ' Po upływie 3 dni " Wszystkie zostaną przeładowane, prawda? Źródło: http://www.askapache.com/htaccess/apache-speed-cache-control.html – Uli

+0

Odpowiedź zakłada, że ​​używam serwera Apache jako serwera, co jeśli używam aplikacji Ruby ? To nie zadziała – Joseph

+0

Oto blog z wyraźnymi objaśnieniami, jak ustawić nagłówki cache w html i twój ulubiony język programowania http://docs.fastly.com/guides/22951283/26628787 – Joseph

0

jak na YSlow recommendations można skonfigurować serwer WWW, aby dodać lub jej nagłówek HTTP ExpiresCache-Control do reakcji, która doprowadzi agentów użytkownika buforowanie odpowiedzi na określony czas.

1

Jak wspomniano Wygasa i nagłówki Cache-Control są zwykle najlepszym sposobem na włączenie informacji o życiu informacyjnym.

Ponieważ klienci nie są bardzo wiarygodni w interpretacji tych informacji, serwery proxy z możliwością buforowania, takie jak kalmary, lakiery lub takie rozwiązania są preferowane przez większość ludzi. Należy również rozważyć, czy cache ma zawierać tylko statyczną zawartość (np. Obrazy, arkusze stylów itp.) Lub dynamicznie generowaną zawartość.

15

Nagłówek Cache-Control używany jest w protokole HTTP 1.1 do kontrolowania zachowania pamięci podręcznych. Dyrektywa max-age służy do określenia (w sekundach) maksymalnego wieku zawartości, zanim stanie się ona nieaktualna (tzn. Zawartość nie zmieni się przez pewien okres czasu). Więc jeśli wiesz, że zawartość nie zmieni się w ciągu 3 dni, chcesz serwer, aby dodać następujący nagłówek HTTP:

Cache-Control: max-age=259200 

(259200 = 60s x 60m x 24h x 3d)

to zrobić w PHP, dodać tę linię do produkcji:

header('Cache-Control: max-age=259200'); 

przeczytać tutaj, aby uzyskać więcej informacji na temat funkcji nagłówka:

+1

Dla IIS możesz ustawić go dla zawartość statyczna (zachowując dynamikę dynamiczną) w pliku web.config przy użyciu formatu '[-] [d.] hh: mm: ss [.ff]'. Powinna być podana w ' ' –

Powiązane problemy