Non tutti sanno che quando vediamo un filmato Flash nel browser, quest’ ultimo viene salvato in locale, più precisamente nei file temporanei, al fine di essere prelevato per la visualizzazione.
Ma come evitare la memorizzazione nella cache dei filmati swf?
La cosa che possiamo fare, è quella di far credere al browser, che il filmato flash sulla nostra pagina sia cambiato, aggiungendo al nome del filmato un valore diverso ogni volta che la pagina viene richiesta, facendo credere che sia un file diverso, e non lo stesso con altro nome.
Solitamente, quello che si fa è impostare un valore random, o una data, che ci darà una buona certezza di non fallire.
Vediamo come funziona con diversi linguaggi di programmazione:
<script language="JavaScript">
<!--
document.write('<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'
+' codebase="[...]omissis[...]“‘
+’ ID=name WIDTH=640 HEIGHT=486>’
+’ <PARAM NAME=movie VALUE=”filmato.swf?’ + new Date().getTime() + ‘”>’
+’ <PARAM NAME=loop VALUE=false> <PARAM NAME=bgcolor value=#FFFFFF>’
+’ <PARAM NAME=menu VALUE=false> <PARAM NAME=quality value=high>’
+’ <EMBED src=”filmato.swf?’ + new Date().getTime() + ‘” loop=false ‘
+’ menu=false quality=high bgcolor=#FFFFFF ‘
+’ WIDTH=640 HEIGHT=486 TYPE=”application/x-shockwave-flash”‘
+’ PLUGINSPAGE=”http://www.macromedia.com/go/getflashplayer”>’
+’ </EMBED></OBJECT>’);
//–>
</script>
<?php
header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header ("Cache-Control: no-cache, must-revalidate");
header ("Pragma: no-cache");
srand((double)microtime()*1000000);
$randval = rand();
?>
.......
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'
codebase="[...]omissis[...]“‘ WIDTH=640 HEIGHT=486>’
<PARAM NAME=movie VALUE=”filmato.swf?<?echo $randval;?>”>
<PARAM NAME=loop VALUE=false>
<PARAM NAME=bgcolor VALUE=#FFFFFF>
<PARAM NAME=menu VALUE=false>
<PARAM NAME=quality VALUE=high>
<EMBED src=”filmato.swf?<?echo $randval;?>” loop=false menu=false
quality=high bgcolor=#FFFFFF WIDTH=640 HEIGHT=486
type=”application/x-shockwave-flash”
PLUGINSPAGE=”http://www.macromedia.com/go/getflashplayer”>
</EMBED></OBJECT>
<%@ Language=VBScript Response.CacheControl="no-cache"
Response.AddHeader "Pragma","no-cache"
Response.Expires=0
randomize
rand_n=int(rnd*9999)
%>
.......
<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'
codebase="[...]omissis[...]“‘ WIDTH=640 HEIGHT=486>’
<PARAM NAME=movie VALUE=”filmato.swf?<%=rand_n%>”>
<PARAM NAME=loop VALUE=false>
<PARAM NAME=bgcolor VALUE=#FFFFFF>
<PARAM NAME=menu VALUE=false>
<PARAM NAME=quality VALUE=high>
<EMBED src=”filmato.swf?<%=rand_n%>” mce_src=”filmato.swf?<%=rand_n%>” loop=false menu=false
quality=high bgcolor=#FFFFFF WIDTH=640 HEIGHT=486
type=”application/x-shockwave-flash”
PLUGINSPAGE=”http://www.macromedia.com/go/getflashplayer”>
</EMBED></OBJECT>
Stessa cosa vale per quando si cerca di caricare un file XML, di testo o un filmato.
loadVariables ("file.txt?a="+ random);
Dove random sarà una nostra variabile, preferibilmente di tempo, al fine di non ripetere lo stesso nome
ABC, Cinema, Design, Flash, HTML, JavaScript, Links, PHP, Sviluppo, Tutorial

9 Commenti
» Non caricare lo swf dall cache
27 Luglio 2007 alle 12:37 pm
[...] Sassasa e benvenuta sul forum GT vede se questo articolo se ti puo essere [...]
daniela
14 Settembre 2007 alle 16:20 pm
ciao julius sai se si puo eliminare con uno script quell’odioso riquadro che si vede per poi utilizzare il filmato di flash grazie e complimenti ancora per il blog
daniela
Julius
14 Settembre 2007 alle 16:24 pm
Ecco qui: Internet explorer blocco
ciao
Smash
28 Settembre 2007 alle 9:30 am
Julius please puoi mettere apposto che il commento non ha preso il tag per fare vedere il codice…
Grasie
Julius
28 Settembre 2007 alle 9:36 am
Non c’è nessun codice…
scrivilo con i tag HTML lato codice e inseriscilo nei commenti
Massimo
31 Marzo 2008 alle 12:20 pm
Ciao Julius,
purtroppo il caso mio è leggermente diverso..
la mia galleria in flash legge un xml che genero dinamicamente in php.. penso che metta in cache entrambe le cose perchè mi restituisce sempre le stesse immagini..
L’xml viene creato correttamente..
Ho provato ad inserire i tuoi suggerimenti e su Firefox funziona mentre con explorer 7 no..
come posso fare?
Grazie1000!
Julius
31 Marzo 2008 alle 19:21 pm
bè se con ff funziona, ovvero richiami ogni volta un file xml di nome diverso è molto strano che con IE non funzioni…
assicurati che il file XML sia diverso
Massimo
1 Aprile 2008 alle 9:16 am
purtroppo il nome dell’xml è sempre lo stesso..
è una galleria in flash generata da un programma e va a leggere un file di nome slides.xml… non saprei come fare a passargli un nome diverso non avendo il .fla
Grazie1000!
Julius
1 Aprile 2008 alle 19:19 pm
dovresti da flash inserire il codice descritto nell’articolo..
Scrivi un Commento
tag abilitati: <code> </code> | <a href=""> </a> | <strong> </strong> | <i> </i>