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

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Hvordan undgås det at PHP output caches cl~
Fra : Kasper Garnæs


Dato : 18-03-04 00:08

Hej gruppe,

Af uransagelige årsager, ser det ud til at Internet Explorer insisterer på
at cache alle mine PHP sider på et site, jeg har lavet. Det er i langt de
fleste tilfælde ikke særlig hensigtmæssigt, og jeg kan ikke engang tvinge
den til at vise den opdaterede version ved at trykke F5.

Jeg har prøvet med både Firefox og Opera - de har ingen problemer - og haft
sitet liggende på to forskellige servere - problemet var det samme. Så vidt
jeg kan se, må det altså enten være Internet Explorer eller mine scripts der
er noget galt med.

Jeg har prøvet at se nærmere på mine scripts, og jeg synes ikke, jeg har
gjort noget, der skulle have fremprovokeret cachingen. Jeg har endda prøvet
at tilføje følgende taget fra http://dk2.php.net/header:

header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

Det har dog ikke gjort nogen forskel, og jeg ved heller ikke, om det virker.
Jeg kan se at de headers, jeg sætter i koden, ikke afspejler sig i de
headers, jeg kan se, jeg modtager via Live HTTP Headers-plugin'en til
Firefox.

Jeg har dog fundet ud af at, hvis der bliver sendt POST-data med, vil IE dog
undtagelsesvis gerne opdatere, men det er lidt svært at lade al navigation
foregå vha. forms.

Jeg er ved at løbe tør for idéer til, hvordan jeg kan løse dette, så hjælp
og forslag modtages med kyshånd.

--
Med venlig hilsen / Regards
Kasper Garnæs
http://kasper.garnaes.dk



 
 
Jimmy (18-03-2004)
Kommentar
Fra : Jimmy


Dato : 18-03-04 05:43


"Kasper Garnæs" <demos@mailme.dk> wrote in message
news:c3alnv$7l6$1@news.cybercity.dk...
> Hej gruppe,
>
> Af uransagelige årsager, ser det ud til at Internet Explorer insisterer på
> at cache alle mine PHP sider på et site, jeg har lavet. Det er i langt de
> fleste tilfælde ikke særlig hensigtmæssigt, og jeg kan ikke engang tvinge
> den til at vise den opdaterede version ved at trykke F5.

Undertiden får en bruger forvildet sig ind i Tools - Internet Options -
Temporary Internet Files og sat "Check for newer versions of stored pages" i
"Never".
"Automatically" er også rigtigt rigtigt skidt, og er desværre
standardindstilling.

"Every visit to the page" er den eneste holdbare (selvom den også kan
fejle).

Du kan naturligvis ikke løbe ud på alle klienters maskine og checke dette,
hvorfor du kan lave en cache buster.

Du sørger ganske enkelt for at tilføje f.eks. ?CB=Rand(10) hvorefter IE tror
det er en ny side hver gang.

Jeg havde problemet med dynamisk genererede billeder og der løste
ovenstående problemet.

Mvh
Jimmy



Kasper Garnæs (18-03-2004)
Kommentar
Fra : Kasper Garnæs


Dato : 18-03-04 08:30

Jimmy <nyhedsgruppe2001@FJERN.yahoo.co.uk> wrote:
> "Kasper Garnæs" <demos@mailme.dk> wrote in message
> news:c3alnv$7l6$1@news.cybercity.dk...
>> Hej gruppe,
>>
>> Af uransagelige årsager, ser det ud til at Internet Explorer
>> insisterer på at cache alle mine PHP sider på et site, jeg har
>> lavet. Det er i langt de fleste tilfælde ikke særlig
>> hensigtmæssigt, og jeg kan ikke engang tvinge den til at vise den
>> opdaterede version ved at trykke F5.
>
> Undertiden får en bruger forvildet sig ind i Tools - Internet Options
> - Temporary Internet Files og sat "Check for newer versions of stored
> pages" i "Never".
> "Automatically" er også rigtigt rigtigt skidt, og er desværre
> standardindstilling.
>
> "Every visit to the page" er den eneste holdbare (selvom den også kan
> fejle).
>
> Du kan naturligvis ikke løbe ud på alle klienters maskine og checke
> dette, hvorfor du kan lave en cache buster.
>
> Du sørger ganske enkelt for at tilføje f.eks. ?CB=Rand(10) hvorefter
> IE tror det er en ny side hver gang.
>
> Jeg havde problemet med dynamisk genererede billeder og der løste
> ovenstående problemet.

Tak for forslaget. Det er tilsyneladende lykkedes mig at løse problemet på
en anden måde.

Jeg lavede oprindeligt mine headers-kald via en funktion på en inkuderet
side. Jeg prøvede herefter at lave en dummy side, hvor jeg satte headers,
kaldte phpinfo() og tjeckede via Live HTTP Headers og bingo - headers'ne var
pludselig sat rigtigt. Jeg prøvede herefter skrift efter skridt at
videreudvikle den situation til den i systemet, og det viser sig, at hvis
jeg flytter funktionskaldet til den side, der bliver requested fra klienten,
bliver headers sat, som de skal, og Internet Explorer opfører sig, som den
skal.

Jeg vil ikke forsøge at komme men en god forklaring påm hvorfor det er
sådan, men i stedet vare konstarere, at det virker, og at PHPs veje er
uransagelige...

--
Med venlig hilsen / Regards
Kasper Garnæs
http://kasper.garnaes.dk



Kristian Thy (18-03-2004)
Kommentar
Fra : Kristian Thy


Dato : 18-03-04 09:04

Kasper Garnæs uttered:
> Jeg vil ikke forsøge at komme men en god forklaring påm hvorfor det er
> sådan, men i stedet vare konstarere, at det virker, og at PHPs veje er
> uransagelige...

Du kan roligt regne med at problemet ligger i IE og ikke PHP...

\\kristian

Jonas Koch Bentzen (18-03-2004)
Kommentar
Fra : Jonas Koch Bentzen


Dato : 18-03-04 10:07

Kasper Garnæs skrev:
>
> Jeg vil ikke forsøge at komme men en god forklaring påm hvorfor det er
> sådan, men i stedet vare konstarere, at det virker, og at PHPs veje er
> uransagelige...

Nu kommer vi så ind på en kodefilosofisk diskussion, men efter min mening er
det farligt og lidt uprofessionelt at have den holdning, at et
programmeringssprogs veje er uransagelige :) Tingene skal virke på samme
måde hver gang - virker de ikke, så melder man fejlen til dem, der har
lavet programmeringssproget (ikke at jeg tror, der er fejl i PHP her). Hvis
man gør det til en vane at bruge den der med "nu virker det, men jeg aner
ikke hvorfor", så risikerer man fejl i sit program senere.

--
- Jonas Koch Bentzen

http://understroem.dk/
http://findhim.com/

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

Månedens bedste
Årets bedste
Sidste års bedste