/ Forside / Teknologi / Udvikling / HTML / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
HTML
#NavnPoint
molokyle 11184
Klaudi 5506
bentjuul 3377
severino 2040
smorch 1950
strarup 1525
natmaden 1396
scootergr.. 1320
e.c 1150
10  miritdk 1110
Tvungen refresh af hjemmeside (META tags -~
Fra : Kim Madsen


Dato : 04-12-09 10:22

Hey,

Jeg har siddet og kigget lidt på nettet samt søgt i dette forum for at finde
en løsning, men lige umiddelbart er jeg forvirret...

Jeg vil gerne lave min webside på den måde, at hver side bliver hentet på
ny, hver gang brugeren besøger siden - i tilfælde af, at jeg har opdateret
indholdet. Jeg oplever hos mig selv, at hvis jeg laver en opdatering af en
af mine web-sider, så er det ikke altid at jeg kan se denne ændring i
browseren med mindre jeg refresher siden manuelt - og det er jo formodentlig
fordi browseren henter siden fra cachen. Men jeg vil altså gerne sørge for,
at det hele tiden er den opdaterede version, der vises til brugeren.

Jeg kan ligesom forstå, at det er en eller flere af de i emnet nævnte tags,
jeg skal bruge (andre forslag er dog også velkomne). Men jeg kan ikke lige
gennemskue, om jeg skal bruge flere af dem eller kun ét af dem og om de
egentlig er valide ift. seneste W3C-standarder.

<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="expires" content="Tue, 20 Aug 1996 14:25:28 GMT">

Jeg har læst noget om, at hvis man sætter "expires" til en gammel dato,
risikerer man at søgemaskiner ikke længere indekserer siden.

Kim



 
 
Frank Damgaard (04-12-2009)
Kommentar
Fra : Frank Damgaard


Dato : 04-12-09 11:14

Kim Madsen wrote:
> Hey,
>
> Jeg har siddet og kigget lidt på nettet samt søgt i dette forum for at
> finde en løsning, men lige umiddelbart er jeg forvirret...
>
> Jeg vil gerne lave min webside på den måde, at hver side bliver hentet
> på ny, hver gang brugeren besøger siden - i tilfælde af, at jeg har
> opdateret indholdet. Jeg oplever hos mig selv, at hvis jeg laver en
> opdatering af en af mine web-sider, så er det ikke altid at jeg kan se
> denne ændring i browseren med mindre jeg refresher siden manuelt - og
> det er jo formodentlig fordi browseren henter siden fra cachen. Men jeg
> vil altså gerne sørge for, at det hele tiden er den opdaterede version,
> der vises til brugeren.
>
> Jeg kan ligesom forstå, at det er en eller flere af de i emnet nævnte
> tags, jeg skal bruge (andre forslag er dog også velkomne). Men jeg kan
> ikke lige gennemskue, om jeg skal bruge flere af dem eller kun ét af dem
> og om de egentlig er valide ift. seneste W3C-standarder.
>
> <meta http-equiv="cache-control" content="no-cache">
> <meta http-equiv="pragma" content="no-cache">
> <meta http-equiv="expires" content="Tue, 20 Aug 1996 14:25:28 GMT">
>
> Jeg har læst noget om, at hvis man sætter "expires" til en gammel dato,
> risikerer man at søgemaskiner ikke længere indekserer siden.


Muligvis, sæt den evt. til samme dato som siden er sidst ændret,
eller 1 time frem i tiden. Du kunne også prøve uden "expires".


Min erfaring at disse diverse expires-tricks er et levn fra da visse
browsere havde en hukommelse som en elefant, og næsten ikke var
til at overbevise om at siden var opdateret.
specielt IE skulle have en del tricks for at den ikke gemte siden i al evighed.
(nogen gange hjælper kun genstart af IE ....)
Brugeren kan dog også i IE opsætning vælge cache-policy, men de færreste
brugere roder der.


Egentlig er ideen at http-headere fortæller sidens tidstempel ,
og sidst rettet mfl. (Date, Last-Modified,....)
Dynamiske sider viser ofte kun aktuel tid.

En browser kan så nøjes med at hente headere for at se om siden er ændret
og om siden så efterfølgende skal hentes i ny udgave.

Disse headere kan man evt. manipulere/sætte så siden altid hentes
i de fleste browsere, forudsat brugeren ikke har indstillet sin browser
anderledes....


Af http-headere man kan sende er som du har fundet Cache-control og Expires:
Se "2)" : http://php.net/manual/en/function.header.php

Egentlig burde "Cache-Control: no-cache" være nok, men visse browsere
husker som en elefant.....

Den med Pragma burde ikke give mening fra server (fra wikipedia):

"The Pragma: no-cache header is an HTTP/1.0 header intended for use in requests. It is a
means for the browser to tell the server and any intermediate caches that it wants a fresh
version of the resource, not for the server to tell the browser not to cache the resource.
Some user agents do pay attention to this header in responses (e.g. some versions of IE,
but only when using https), but the HTTP/1.1 RFC specifically warns against relying on
this behaviour."


Disse http-headere kan man som "fattigmandsløsning" også lave som meta-tags i html
men meta-tags virker jo ikke i tekstriler, og andre filtyper.
Og Husk, nogle browsere lader http-headeren bestemme hvis det både findes som header
og meta-tag. Andre browser lader meta-tag bestemme (IE og vistnok Opera) ....
Så ikke nemt at lave noget der virker ens i alle browsere.


I øvrigt i stedet for Expires så man man i http 1.1 bruge den nyere
max-age i Cache-Control.
Se "13.2.4 Expiration Calculations" i rfc2616.

I PHP bruger jeg ofte når der ikke skal caches i mine download-pdf'ere:
(noget er til proxy'er)

header('Cache-Control: private, max-age=0, must-revalidate');


Jeg ved dog ikke om man kan lave den om til et meta-tag i html,
da det egentlig er en del af http 1.1 headerne.



PS.
links:
http://tools.ietf.org/html/rfc2616#section-13
http://palisade.plynt.com/issues/2008Jul/cache-control-attributes/

liste af http-headere:
http://en.wikipedia.org/wiki/List_of_HTTP_headers#Responses

andet:
http://www.technutopia.com/forum/showthread.php?t=4992
http://www.http-stats.com/Cache-Control
http://stackoverflow.com/questions/1046966/whats-the-difference-between-cache-control-max-age0-and-no-cache


Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste