Just nu i M3-nätverket
Gå till innehåll

Uppdatera webbsida.


mindsleep

Rekommendera Poster

Vad är det som gäller nu för att tvinga webbläsarna att inte hämta cachen. Utan i hämta webbsidan från servern?

 

Har en webbsida som uppdatera innehåll rätt ofta och jag sitter och tittar i loggar och ser att visa webbläsare verkar hämta från cachen då de borde hämta nytt innehåll.

 

Förut körde man ju:

<HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE">

 

Men vad är det som gäller idag?

Länk till kommentar
Dela på andra webbplatser

Om du har möjlighet att påverka http-headrarna så är det nog det bästa. Du kan sätta Cache-Control: max-age=3600 tillexempel. Det berättar att sidan kommer vara aktuell i 3600 sekunder. Och om din besökare besöker sidan efter att tiden gått ut så bör den hämta en ny version.

 

Annars så brukar jag använda Expires och Last-Modified. Jag tycker det fungerar rätt bra. Last-Modified i kombination med att man tar hand om If-Modified-Since är mycket kraftfullt för att styra cache och därmed även svarstider.

Länk till kommentar
Dela på andra webbplatser

Om du har möjlighet att påverka http-headrarna så är det nog det bästa. Du kan sätta Cache-Control: max-age=3600 tillexempel. Det berättar att sidan kommer vara aktuell i 3600 sekunder. Och om din besökare besöker sidan efter att tiden gått ut så bör den hämta en ny version.

 

Annars så brukar jag använda Expires och Last-Modified. Jag tycker det fungerar rätt bra. Last-Modified i kombination med att man tar hand om If-Modified-Since är mycket kraftfullt för att styra cache och därmed även svarstider.

 

Tack för tipsen! Kör XHTML/PHP. Kan du visa lite exempel eller referera till någon som visar så jag kan förstå hur jag ska skriva.

Länk till kommentar
Dela på andra webbplatser

Eftersom jag inte kodar php så kan jag inte ge dig några bra kodexempel. Men jag kan förklara hur jag gjort.

 

När sidan skickas till browsern så skickar jag med headers Last-Modified och datum+tid när sidan senast var ändrad. Detta kommer browsern spara i sin cache och nästa gång sidan besöks så skickar browsern med en klasul som heter If-Modified-Since. Du tar emot datum och tid som ligger med i If-Modified-Since och jämför det med det datum du har. Om sidan inte är ändrad så skickar du som svar Status 302 Not Modified och inget mer. Du behöver inte skicka något innehåll för browsern har redan det senaste i cache.

 

Om sidan däremot är ändrad så gör du precis som från början. Du skickar sidan som vanligt med headern Last-Modified och det nya datumet. Detta upplever jag har fungerat riktigt bra för mig. Plus att man får mycket bra prestanda då man i flera instanser inte behöver ladda upp innehållet i sidan från databasen. Bara datumet då det ändrades.

 

Expires och Cache-Control:max age är ungefär samma sak. Man berättar för browsern att efter x-antal sekunder så går det bra att hämta en ny version. Men jag upplever ändå att Last-Modified har fungerat bäst hitils. Om du vill kan du altid skicka med Last-Modified och låta datum och tid vara någon minut in i framtiden. Sen struntar du i If-Modified-Since och skickar senaste version av sidan och ett nytt datum och tid i Last-Modified. På så vis kommer browsern tro att sidan altid är uppdaterad.

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...