[php] caching van plaatjes... aan

Pagina: 1
Acties:

  • Skinkie
  • Registratie: Juni 2001
  • Laatst online: 09-06-2020

Skinkie

Op naar de 500

Topicstarter
ik en mijn adsl lijntje zouden het heel fijn vinden als we wat minder dezelfde plaatjes naar gebruikers toe hoefden te sturen. De ene browser cached wel alles standaard... de andere niet... hoe krijg je via de http headers de browser zover dat hij alleen je plaatje cached, de data van de site niet...

nu heb ik al een phpscriptje die de plaatjes aanleverd, en al wat geexpirimenteerd met headers voor het plaatje en contenttype gooien... maar mocht niet baten. Weet iemand nog een site waar dit redelijk gedocumenteerd is... googlen doet normaal wonderen maar ik kom meer op script caching uit dan op image caching...

Steun Elkaar, Kopieer Nederlands Waar!


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

'Expires' zetten geloof ik.

Who is John Galt?


  • Willem2
  • Registratie: Oktober 2000
  • Laatst online: 24-08 14:05

Willem2

Ω is futile

Dit ligt volledig aan de client side. Als een gebruiker zijn cache uit heeft staan, kun je headers zetten wat je wilt, maar zal de browser toch alles gaan inladen.

Verder zijn 'expire' headers alleen maar bedoeld om browsers die cachen te laten weten wanneer hun cache pagina verlopen is; niet om browser te forceren images te cachen.

Dusse, kleinere/minder plaatjes gebruiken zou ik zeggen als het een probleem is! :)

en nee, ik houd niet van voetbal... :)


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Precies.. als je in je browser instelt dat je minder wilt cachen dan worden je headers gewoon genegeerd. Das namelijk een keuze van de gebruiker.

Kun je de plaatjes niet op de webruimte van je provider zetten, dan heb je geen last van dat dat hele probleem. Met Fast ADSL heb ik ook 50 MB ruimte met 5GB dataverkeer per maand... ideaal voor dat soort spul ;)

  • Skinkie
  • Registratie: Juni 2001
  • Laatst online: 09-06-2020

Skinkie

Op naar de 500

Topicstarter
Zou idd wel kunnen om de "statische" plaatjes ergens anders te hosten, maar ik vind het dan toch een beetje zonde dat voor iedere pagina een zelfde plaatje wordt getrokken... maar ik ga nog wel ff emmeren ;)

Steun Elkaar, Kopieer Nederlands Waar!


  • stekkel
  • Registratie: Augustus 2001
  • Laatst online: 12-07 11:54
Het is niet helemaal waar dat caching geheel aan de client ligt. Bij veel PHP programma's is caching juist ongewenst.
Om toch te forceren dat bepaalde pagina's met plaatjes gecached worden kan je de header('Cache-Control: public');
of iets dergelijks meesturen. Zie ook de manual en de HTTP 1.1 specificatie.

  • sebas
  • Registratie: April 2000
  • Laatst online: 16-12-2025
Hmm, als ik tegen mijn mozilla zeg dat die niets moet cachen en alles altijd moet downloaden dan gaat die toch echt niet cachen. Weldegelijk ligt de keuze in eerste instantie bij de client, hij moet de data immers opslaan. Je kunt ook wel voor vooral dynamische site het caching uitzetten, maar je kunt dus geen caching forceren bij de client.

Skinkie: check maar eens de logfiles van je webserver, je zult dan zien dat het overgrote deel van de data maar maximaal een stuk of tien files zijn (voor zover statisch). Die kun je makkelijk verplaatsen, het is een kleine aanpassing (global replace in een template is je vriend ;)) en je bent van de zwaardere dingen qua traffic af, enwel zeker, onafhankelijk van de cache settings van allerlei verschillende clients.

Dit scheelt dan natuurlijk nog eens duidelijk meer traffic dan alleen dat caching gedoe, aangezien caching alleen maar op verschillende visits werkt en het 'outsourcen' bij elke hit scheelt die je krijgt.

Everyone complains of his memory, no one of his judgement.


  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Try this....

PHP:
1
2
3
4
5
function cache($time=2678400) {
    header("Expires: ".gmdate("D, d M Y H:i:s", time() + $time) . "GMT");
    header("Cache-Control: max-age=". $time);
    header("Last-Modified: " . gmdate("D, d M Y H:i:s", time() + $time) . "GMT");
}


Maar wat de mensen hier boven me gezegd hebben is wel duidelijk, je hebt nooit volledig controle over de client!. En dit tip van [rml]sebas in "[ php] caching van plaatjes... aan"[/rml] is erg goed. Beter zelfs dan deze patch werk.

Programmer - an organism that turns coffee into software.


  • dirkpostma
  • Registratie: Juni 2001
  • Laatst online: 10-05 16:53
Hier een heel mooi en praktisch documentje over caching:

http://www.mnot.net/cache_docs/
Pagina: 1