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:

  • JavaScript

<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

<?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>

  • ASP

<%@ 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

Condividi su:
  • del.icio.us
  • Digg
  • Upnews
  • Taggly
  • Segnalo
  • StumbleUpon