Cerca nel blog

Pubblicità

banner-125x125 banner-125x125 banner-125x125banner-125x125

Feed RSS e Newsletter

Puoi seguire il mio blog abbonandoti al feed RSS, se non sai cos'è un feed RSS prova a guardare questo video... Spiega tutto!

Icona Feed RSS

Twitter

PayPal

Se ti piace questo blog puoi pensare ad una donazione.

Tutti i fondi ricevuti saranno utilizzati per il mio sollazzo personale. :-)

Ultimi commenti...

lupoalberto12: Infatti, ecco perchè alla fine ho aggiunto: (parlo in generale). Dell’ Apple ho comprato solo...

Napolux: @ lupoalberto12: Mai visti scendere i prezzi di prodotti Apple, se non alla fine del loro ciclo di vita. ;)

lupoalberto12: Concordo in pieno. Concordo anche sul fatto che, come l’Apple, anche altre aziende lo fanno....

Davide Salerno: Purtroppo il marketing ha ragioni che l ragione non vuol sentire… P.S. Io volevo solo dire che...

ArMyZ: @ Andrea Contino: me li ricordo bene anche io visto che ho penato non poco..

Evitare il caching delle immagini con PHP

martedì 16 settembre 2008
1 Star2 Stars3 Stars4 Stars5 Stars (2 voti, media: 3,50)
Loading ... Loading ...

fotogallery

In questo web fatto di AJAX, JavaScript, Rich Internet Applications (aggiungere paroloni a piacere) spesso può essere utile evitare (nonostante le impostazioni scelte dall'utente) che i contenuti scaricati dal nostro server vengano messi nella cache del browser.

Dopo questa pletora di parentesi (ho mai detto che adoro le parentesi) arriviamo al sodo della questione.

Esistono header da inviare attraverso la funzione header() di PHP che in teoria dovrebbero impedire il caching delle nostre pagine:

// Data passata
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache");
header("Pragma: no-cache");

Personalmente li uso spesso (con qualche accorgimento per Internet Explorer), ma per le immagini c'è poco da fare: vengono messe in cache comunque.

Come risolvere una volta per tutte la questione caching anche per le immagini? Il trucco c'è ed è talmente banale che quando lo si scopre vien voglia di esclamare: "Perché non ci ho pensato prima?"

Vediamo come fare, basta una riga di codice.

echo '<img src="{$tuaImmagine}?' , time() , '" />';

Cosa abbiamo fatto? Abbiamo semplicemente aggiunto una querystring alla nostra immagine, assegnandogli il valore di time() (che restituisce il numero di secondi passati dal 1 Gennaio 1970).

Così facendo "inganniamo" il browser facendogli credere che serva dover elaborare una richiesta prima di poter accedere alla risorsa, forzandolo quindi a richiedere nuovamente la nostra immagine al server.

La cosa è semplice, funziona e può essere applicata a qualunque elemento: CSS, files da scaricare, contenuto flash...

Facile no?

Questo articolo è stato pubblicato martedì, 16 settembre 2008 alle ore 06:05 Se non vuoi perdere nemmeno un articolo del mio blog abbonati al feed RSS. Se non sai cos'è un feed RSS puoi guardare questo video, spiega tutto!

In alternativa puoi abbonarti alla newsletter, riceverai un'email ogni volta che verrà pubblicato un nuovo post. Il tuo indirizzo email sarà gestito da Feedburner.

  

6 Commenti a “Evitare il caching delle immagini con PHP”

  1. Pino scrive:

    Fiiico, pensa che dalla disperazione sono costretto a cambiare il nome delle immagini. Respect!

  2. Fabio scrive:

    Questo post mi ha fatto venire in mente un’altra soluzione che ho utilizzato di recente.

    Evitare il caching con .htaccess

  3. Napolux scrive:

    Grazie per il link, me lo segno!

  4. EmaWebDesign scrive:

    Questo è il bello del mestiere del programmatore: tutto è facile e tutto è difficile :wink:

  5. Procionegobbo scrive:

    Semplice e geniale, non ci avevo mai pensato. Grazie della dritta :wink:

  6. DnaX scrive:

    La stessa tecnica consigliata da molti per evitare il caching delle risposte ajax. Però potrebbero fare qualcosa ai browser per evitare l’uso di questi workaround!