PHP gevorderde |
|
Je kan door je webserver laten voorkomen dat images worden gecached door de client. Dit kan je doen door geen Cache-Control header mee te sturen bij de HTTP response. In het geval van een Apache HTTP server zou de htaccess voor één afbeelding er zo uitzien:
<Files image.gif>
Header unset Cache-Control
</Files>
<Files image.gif> Header unset Cache-Control </Files>
Je kan al de afbeeldingen die je niet in de cache wilt laten opnemen ook in één dir zetten en dan de volgende htaccess code gebruiken:
<Directory /afbeeldingen>
Header unset Cache-Control
</Directory>
<Directory /afbeeldingen> Header unset Cache-Control </Directory>
Een andere oplossing is je afbeeldingen laten ophalen door een php image. In het php bestandje dat je gebruikt om de afbeeldingen mee op te halen kan je dan dmv PHP.net: headers de Cache-Control HTTP header ook weer unsetten.
<img src="afbeeldingen.php?afbeelding=foobar.gif" alt="" />
<img src="afbeeldingen.php?afbeelding=foobar.gif" alt="" />
Een truukje dat je ook kan toepassen is steeds een randomnummer achter je afbeelding plaatsen.
afbeelding.gif?123 wordt als de browser als een andere afbeelding gezien dan afbeelding.gif?125 of gewoonweg afbeelding.gif. Hij gaat dus niet eerst in de cache zoeken.
Voorbeeldje:
<script language="javascript">
function afbeelding(id, bron)
{
var randomnumber= Math.random();
document.getElementById(id).src = bron + '?' + randomnumber;
}
</script>
<img src="afbeelding.gif" id="foobar" alt="" />
<a href="#" onclick="afbeelding('foobar', 'afbeelding.gif');">Refresh!</a>
<script language="javascript"> function afbeelding(id, bron) { var randomnumber= Math.random(); document.getElementById(id).src = bron + '?' + randomnumber; } <img src="afbeelding.gif" id="foobar" alt="" /> <a href="#" onclick="afbeelding('foobar', 'afbeelding.gif');">Refresh! </a>
|