Permalänk
Medlem

Uppdatering av hemsidan

Jag har en hemsida som jag uppdaterar ganska ofta men ibland säger vänner till mig att de inte ser att jag uppdaterat. Vad jag förstår har de en cachlagrad version av min hemsida i sin dator och måste trycka F5 i sin web-browser för att se den senaste versionen av min sida.

Kan jag lägga in en kod eller liknande för att användarnas webbrowsers automatiskt tittar efter en uppdaterad version på webservern istället för att ladda fram en cachlagrad version?

Jag tänker mig t.ex aftonbladet.se som alltid är uppdaterad, man behöver ju aldrig trycka på F5 här.

Permalänk
Medlem

i php skriver du såhär för att inte webläsaren ska använda någon cache.

<?php header("Cache-Control: no-cache"); header("Expires: -1"); ?>

Permalänk
Medlem

Undrar vidare...

Den hemsida jag har är skapad via webhotellägarens eget webdesignersprogram (Web Composer)
så jag har inte knackat kod själv.
Jag kan har möjlighet att editera kod manuellt men jag vet inte mycket om hur man gör och är ganska säker på att det är vanlig html-kod. Kan jag ändå knuffa in den kodsträng du angav eller är det mera komplicerat än så?

Permalänk
Medlem

Nej det kan du inte göra. Då finns det inget du kan göra som jag känner till. headers skickas av servern och inte i html koden.

Permalänk
Medlem

Oki, tack ialla fall!

Permalänk
Skrivet av mimansso:

Kan jag ändå knuffa in den kodsträng du angav eller är det mera komplicerat än så?

Döp om dokumenten till .php (förutsätter att stöd för php finns), och lägg till

<?php header("Cache-Control: no-cache"); header("Expires: -1"); ?>

Notera att det måste vara högst upp och ingen som helst output innan (inga blanksteg, eller dolda tecken).

Visa signatur

Citera, tack!
Har du läst tråden om strandhögtalare och andra musiklådor?

Permalänk
Medlem

Jo, webhotellet har stöd för php så jag ska prova. Tack!

Permalänk
Skrivet av blomqvist:

Döp om dokumenten till .php (förutsätter att stöd för php finns), och lägg till

<?php header("Cache-Control: no-cache"); header("Expires: -1"); ?>

Notera att det måste vara högst upp och ingen som helst output innan (inga blanksteg, eller dolda tecken).

Funktion jag skrev någon gång, dock aldrig testade men den har lite graceful degradation och dugligt med dokumentation.

/* Force cache revalidation (i.e., override possible caching algorithms). * @author x <x@x.x> */ public function force_no_cache() { if (!headers_sent()) { /* The server MUST NOT use a cached copy when responding to * [a "no-cache" cache-control directive]. (see RFC2616 section 14.9.4) * * If a request includes the no-cache directive, it SHOULD NOT * include min-fresh, max-stale, or max-age * (see RFC2616 section 14.9.4). */ header("Cache-Control: no-cache"); /* Expires is probably unnecessary, include at own prerogative. * * The request includes a "no-cache" cache-control directive or, for * compatibility with HTTP/1.0 clients, "Pragma: no-cache". Field * names MUST NOT be included with the no-cache directive in a * request. The server MUST NOT use a cached copy when responding to * such a request. (see RFC2616 section 14.9.4) * (...) * Many HTTP/1.0 cache implementations will treat an Expires value that * is less than or equal to the response Date value as being equivalent * to the Cache-Control response directive "no-cache". If an HTTP/1.1 * cache receives such a response, and the response does not include a * Cache-Control header field, it SHOULD consider the response to be * non-cacheable in order to retain compatibility with HTTP/1.0 servers. * (see RFC2616 section 14.9.3) * * HTTP/1.1 clients and caches MUST treat [...] invalid date formats, * especially including the value "0", as in the past (i.e., "already * expired"). (See RFC2616 section 14.21) */ //header("Expires: 0"); /* Note that HTTP/1.0 caches might not implement Cache-Control and * might only implement Pragma: no-cache (see RFC2616 section 14.32). * * HTTP/1.1 caches SHOULD treat "Pragma: no-cache" as if the client had * sent "Cache-Control: no-cache". No new Pragma directives will be * defined in HTTP. * * Note: because the meaning of "Pragma: no-cache as a response * header field is not actually specified, it does not provide a * reliable replacement for "Cache-Control: no-cache" in a response * (See RFC2616 section 14.32) */ header("Pragma: no-cache"); } }

Visa signatur

Lee Adama is a bitch!

Permalänk
Medlem
Skrivet av =JoNaZ=:

Nej det kan du inte göra. Då finns det inget du kan göra som jag känner till. headers skickas av servern och inte i html koden.

Har du glömt meta taggar?

<META HTTP-EQUIV="CACHE-CONTROL" CONTENT="NO-CACHE">

Om man nu inte vill börja köra php koder.