[PHP] IE Cache

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • reminder
  • Registratie: Maart 2001
  • Laatst online: 14-09 21:41
Ik heb een scriptje gemaakt die plaatjes bij een internet provider van de server haalt zodat het mij weer wat bandbreedte scheelt (via een redirect header). In dit script heb ik ook een datatraffic counter gemaakt zodat ik kan zien hoeveel traffic de server al gehad heeft. Nu zit ik alleen met het probleem dat internet explorer hem soms uit het cache haalt en daardoor dus geen traffic veroorzaakt waardoor het niet meer klopt (De PHP file zelf haalt hij niet uit het cache dus hij registreerd de traffic wel), weet iemand hoe ik kan checken of hij hem uit het cache haalt of niet.

Ik weer wel dat je moet een header er voor kan zorgen dat hij het nooit uit het cache haalt maar dat is ook weer zonde aangezien ik maar 1 Gb per maand traffic mag hebben

Each year, the Rainforest is responsible for over 3000 deaths from accidents, attacks or illnesses. There are over 700 things in the rainforest that cause cancer. Join the fight now and help stop the Rainforest before it's too late


Acties:
  • 0 Henk 'm!

  • Sybr_E-N
  • Registratie: December 2001
  • Laatst online: 20:50
header("Cache-Control: no-store, no-cache");
header("Pragma: no-cache");
Denk dat je deze bedoeltd.

Acties:
  • 0 Henk 'm!

  • reminder
  • Registratie: Maart 2001
  • Laatst online: 14-09 21:41
Dat wil ik dus juist NIET (als het kan), ik mar al zo weinig traffic hebben :(

[ Voor 9% gewijzigd door reminder op 16-12-2002 16:58 ]

Each year, the Rainforest is responsible for over 3000 deaths from accidents, attacks or illnesses. There are over 700 things in the rainforest that cause cancer. Join the fight now and help stop the Rainforest before it's too late


Acties:
  • 0 Henk 'm!

  • Apollo_Futurae
  • Registratie: November 2000
  • Niet online
als IE een pagina uit z'n lokale cache haalt, hoeft de pagina niet opgehaald te worden, en komt jouw script nooit te weten dat de pagina is bekeken.
daar kun je weinig aan veranderen, aangezien het clientside gebeurt.

Pas de replâtrage, la structure est pourrie.


Acties:
  • 0 Henk 'm!

  • bartvb
  • Registratie: Oktober 1999
  • Laatst online: 08-09 13:47
Hmm.
Je hebt dus plaatje.php die gebruikt wordt om een afbeelding op te halen. Dat script stuurt geen plaatje maar alleen een 'Location: http://www.hierstaat.echt/een_plaatje.jpg' ?
Als dat zo is dan heb je pech :D

Je kan tegen je browser zeggen dat hij altijd moet revalidaten of content nog 'fresh' is. De browser vraagt het plaatje op maar geeft dan aan dat hij het plaatje alleen wil hebben als het veranderd is na een bepaalde datum/tijd. Als er niets veranderd is stuurt de server een 304 header, als het plaatje wel veranderd is wordt het plaatje opgestuurt (met een 200 dus). Probleem is dat je browser dit gaat vragen aan www.hierstaat.echt en niet aan jouw eigen server.

Ik krijg op dit moment geen brilliante oplossing bedacht, ben ik ook wat te gaar voor :P

Hmm, enige dat ik me zo zou kunnen bedenken is dat je bij ieder plaatje ook een 1x1 pixel image zet met een uniek ID dat aan het betreffende plaatje gekoppeld is. je zorgt vervolgens dat die 1x1 pixel images niet gecached mogen worden. Op die manier krijg jij alleen traffic voor 1x1 pixel plaatje en kan je toch zien hoevaak een plaatje bekeken wordt.

Hmm, 'k ben toch minder gaar als ik dacht ;) Als ik nou ook nog voor mezelf wat fatsoenlijks zou kunnen maken. Pfff.

BTW als iemand zich verveelt:
[rml][ Linux] Disk activiteit per proces?[/rml]

Acties:
  • 0 Henk 'm!

  • reminder
  • Registratie: Maart 2001
  • Laatst online: 14-09 21:41
Apollo_Futurae schreef op 16 December 2002 @ 16:59:
als IE een pagina uit z'n lokale cache haalt, hoeft de pagina niet opgehaald te worden, en komt jouw script nooit te weten dat de pagina is bekeken.
daar kun je weinig aan veranderen, aangezien het clientside gebeurt.
Die PHP file wordt dus wel opgehaalt maar IE ziet wel dat die redirect header dus naar een file verwijst die in het cache staat waardoor die die NIET ophaalt.
bartvb schreef op 16 december 2002 @ 17:02:
Hmm, enige dat ik me zo zou kunnen bedenken is dat je bij ieder plaatje ook een 1x1 pixel image zet met een uniek ID dat aan het betreffende plaatje gekoppeld is. je zorgt vervolgens dat die 1x1 pixel images niet gecached mogen worden. Op die manier krijg jij alleen traffic voor 1x1 pixel plaatje en kan je toch zien hoevaak een plaatje bekeken wordt.
Is wel een idee, ik ga effe kijken of ik dat kan laten werken

[ Voor 41% gewijzigd door reminder op 16-12-2002 17:13 ]

Each year, the Rainforest is responsible for over 3000 deaths from accidents, attacks or illnesses. There are over 700 things in the rainforest that cause cancer. Join the fight now and help stop the Rainforest before it's too late


Acties:
  • 0 Henk 'm!

  • bartvb
  • Registratie: Oktober 1999
  • Laatst online: 08-09 13:47
Hmm, ik zat al wat te twijfelen wat je browser doet bij het controleren van iets dat opgehaalt is via een redirect.. Ik gok dat het ook een beetje aan het soort redirect ligt (tijdelijk v.s. permanent).

Je kan er dus voor zorgen dat de browser altijd moet validaten.. Met een beetje geluk komt hij dan weer bij jou terecht, krijgt de redirect en stuurt dan het verzoek door naar de 'echte' server die vervolgens een 304 stuurt (waardoor het bandbreedte gebruik beperkt blijft).

[ Voor 12% gewijzigd door bartvb op 16-12-2002 17:29 ]


Acties:
  • 0 Henk 'm!

Verwijderd

gooi een random getal achter je redirect dus zoiets als
header("Location: http://url/plaats.gif?$random_int");

Waarschijnlijk heeft de remote server er geen last van en blijft IE altijd het plaatje opnieuw ophalen
Pagina: 1