[PHP/HTML] Image refresht niet als deze wordt vervangen*

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik laat met PHP/HTML een afbeelding zien op een webpagina. Laten we voor het gemak zeggen plaatje.jpg. Wanneer ik het bestand plaatje.jpg wijzig, ga ik er vanuit dat bij het volgende bezoek het vernieuwde plaatje wordt weergegeven. Echter wordt het oude plaatje uit het geheugen gehaald en zie ik het nieuwe plaatje pas als ik op Refresh klik.

Iemand enig idee hoe ik de pagina automatisch de laatste versie van de afbeelding kan laten lezen?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Door een cache-control header met je plaatje mee te serveren.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

1. De bestandsnaam dynamisch toewijzen
2. Cache control headers
3. Wat heb je zelf gedaan om je probleem uit te zoeken; waar heb je op gezocht; wat heb je gevonden; waarom was dat niet precies je oplossing?

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Het enige wat ik kan vinden zijn automatische page-refresh na een ingestelde tijd.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Als je gaat [google="cache control header"]? Dat vind ik knap.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Peter
  • Registratie: Januari 2005
  • Laatst online: 13-09 17:10
Wat wij in de dev-omgeving nog wel eens doen is een unix timestamp achter de bestandsnamen zetten, dus niet "image.jpg" maar "image.jpg?1255295557". Voor een productieomgeving is dit vaak echter ondoenbaar. Als je plaatje bij iedere request veranderd zou ik met cache control headers gaan werken, anders zou ik voor een dynamische bestandsnaam kiezen zodat browsers toch nog het eea. kunnen cachen.

Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
Peter schreef op zondag 11 oktober 2009 @ 23:14:
Voor een productieomgeving is dit vaak echter ondoenbaar.
Hoezo? Kijk voor de grap eens in de source van deze pagina, daar wordt het ook gedaan voor .js en .css... ;)

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 10:22

MueR

Admin Tweakers Discord

is niet lief

pedorus schreef op zondag 11 oktober 2009 @ 23:36:
[...]

Hoezo? Kijk voor de grap eens in de source van deze pagina, daar wordt het ook gedaan voor .js en .css... ;)
Stiekem vermoed ik dat Tweakers toch wel iets betere caching daarvoor heeft. Ze zullen echt niet bij iedere pagina de modified time van de files gaan opvragen, dat is vrij duur.

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • Wolfboy
  • Registratie: Januari 2001
  • Niet online

Wolfboy

ubi dubium ibi libertas

MueR schreef op maandag 12 oktober 2009 @ 09:52:
[...]

Stiekem vermoed ik dat Tweakers toch wel iets betere caching daarvoor heeft. Ze zullen echt niet bij iedere pagina de modified time van de files gaan opvragen, dat is vrij duur.
Mwah... met filesystem cache voor die paar css bestandjes. Nog best te doen hoor ;)

En zo dom zijn de webservers die dit serveren nu ook weer niet, die cachen ook wel wat.

[ Voor 22% gewijzigd door Wolfboy op 12-10-2009 09:54 ]

Blog [Stackoverflow] [LinkedIn]


Acties:
  • 0 Henk 'm!

  • mithras
  • Registratie: Maart 2003
  • Niet online
pedorus schreef op zondag 11 oktober 2009 @ 23:36:
[...]

Hoezo? Kijk voor de grap eens in de source van deze pagina, daar wordt het ook gedaan voor .js en .css... ;)
En check dan eens de headers die je terug krijgt ;) Dat is bij een refresh gewoon 304 Not Modified hoor :)

Voor TS: check je cache headers. Makkelijkst is om met ETags te werken, deze kunnen de inhoud van je afbeelding "valideren". Andere inhoud zorgt voor andere ETag, dus verse reload :)

Acties:
  • 0 Henk 'm!

  • Woy
  • Registratie: April 2000
  • Niet online

Woy

Moderator Devschuur®
pedorus schreef op zondag 11 oktober 2009 @ 23:36:
[...]

Hoezo? Kijk voor de grap eens in de source van deze pagina, daar wordt het ook gedaan voor .js en .css... ;)
Dat is waarschijnlijk gewoon de laatste wijzigingsdatum van de file. Als ze de files wijzigen weet je dan zeker dat de laatste versie opgehaald word. Ik neem aan dat het niet voor elke request veranderd word.

“Build a man a fire, and he'll be warm for a day. Set a man on fire, and he'll be warm for the rest of his life.”


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

mithras schreef op maandag 12 oktober 2009 @ 09:55:
[...]
En check dan eens de headers die je terug krijgt ;) Dat is bij een refresh gewoon 304 Not Modified hoor :)
Natuurlijk krijg je dat bij een refresh, het nummertje verandert immers niet als je sowieso al een 304 krijgt op je HTML. :P En als het nummertje niet wijzigt zal ook de CSS wel netjes een 304 teruggeven. Het gaat erom dat je door dat nummertje te veranderen (bij een wijziging, óf bij elke request, óf welk ander criterium dan ook) een download forceert.

Ikzelf zou voornamelijk die cache-control goed zetten, maar goed, dat heb ik al geroepen. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • JordyOnrust
  • Registratie: November 2007
  • Laatst online: 10-07 13:02

JordyOnrust

Leef om te leven.

Ctrl + R of Ctrl + F5 ?

Als je sterft voordat je sterft, sterf je niet wanneer je sterft. Rom 6:5


Acties:
  • 0 Henk 'm!

  • pedorus
  • Registratie: Januari 2008
  • Niet online
mithras schreef op maandag 12 oktober 2009 @ 09:55:
[...]
En check dan eens de headers die je terug krijgt ;) Dat is bij een refresh gewoon 304 Not Modified hoor :)
Maar zonder refresh wordt er niet eens een request gedaan. En dat is een duidelijk voordeel. :)
Tip voor de TS: bekijk het eens met iets als Firebug, op de Net tab kun je precies zien wat er gebeurd.
Woy schreef op maandag 12 oktober 2009 @ 10:43:
Dat is waarschijnlijk gewoon de laatste wijzigingsdatum van de file. Als ze de files wijzigen weet je dan zeker dat de laatste versie opgehaald word. Ik neem aan dat het niet voor elke request veranderd word.
Tuurlijk is het de wijzigingsdatum, je wilt het alleen maar ophalen als het nodig is. crisp legt het uit in nut van css/js bestanden steeds te herladen ?.

Vitamine D tekorten in Nederland | Dodelijk coronaforum gesloten

Pagina: 1