Archive for the ‘ Programmazione ’ Category

Durante la personalizzazione di un widget ho dovuto affrontare un problema davvero noioso.  Modificando il CSS, questo non veniva memorizzato nella cache del browser ma veniva come incorporato nell’API .

Il risultato? Il widget, anche cancellando o disattivando la cache del browser, veniva visualizzato sempre con  la vecchia versione del CSS, nascondendo le modifiche che di volta in volta effettuavo.

Il problema è molto noto, può presentarsi anche caricando immagini con script, oppure lavorando con  filmati flash, con ajax, con Javascript ecc…

Sono stato costretto a correre ai ripari, e ho cominciato a cercare qualche soluzione.

La prima soluzione a cui ho pensato è stata cambiare ogni volta nome al foglio di stile. Il Problema veniva così risolto ma ogni volta dovevo rinominare il css via ftp e modificare  il link che lo richiamava nella pagina.

Visto che il procedimento era molto lento sono stato costretto a cercare un alternativa. Grazie a Google ho scoperto che Stephen Hayden ha proposto un trucchetto per ovviare il problema. Il trucco consiste  nell’aggiungere una variabile GET alla fine del richiamo del file CSS, proprio  come accade per le pagine dinamiche;

Il codice sarebbe tipo questo:

 <link rel="stylesheet" href="http://yeswebcan.it/style.css?version=1" 
type="text/css" />

In questo modo non è più necessario rinominare il CSS, basta cambiare il valore alla variabile version ad ogni modifica. Procedura più veloce della precedente ma pur sempre macchinosa.

Allora ho pensato di aggiungerci un piccolo accorgimento. Niente di più semplice, mi sono limitato a generare in modo casuale (random) il valore della variabile GET tramite PHP. In questo modo sono riuscito a dare automaticamente un valore diverso alla variabile, costringendo il browser a richiedere ogni volta il file CSS al server.

Ecco il codice di esempio:

http://www.sito.it/style.css?version=<?php $code=rand(5,130); echo"$code";?>

Viene generato un numero random compreso tra 5 e 130 (ho scelto tali numeri senza alcun criterio, potete utilizzare una qualsiasi coppia di numeri interi)

L’esempio per un immagine sarebbe:

<img src=”img.jpg?visual=<?php $code=rand(5,130); echo$code;?>alt=”prova”/>