• User Newbie

    File swf e cache

    Ciao a tutti.
    Ho la necessità di rimediare ad un inconveniente che ho con i file swf che non riesco proprio a risolvere.

    Praticamente nel mio sito (www.tarantosport.net) ho due "bottoni" fatti in flash contenenti le due notizie più importanti del giorno. Per modificarli, evitando di riaprire ogni volta il documento in flash, ho fatto in modo che le scritte e la foto vengano caricati da due file esterni (uno testo .txt e uno foto .jpg).
    Il problema qual è: quando modifico l'immagine, ricaricando l'homepage questa non si aggiorna subito a differenza del testo (mah...) e rimane in memoria (cache) del browser quella precedente..... (capite il problema una foto con una notizia diversa.. grrr)

    Quindi come posso fare per "forzare" nel movie flash ogni volta la ricarica del file .jpg??

    Ho cercato qua e là in internet, ma ho trovato solo la possibilità di non fare memorizzare in cache il file swf ma solo per le pagine in html (la mia pagina contenente i movie flash sono in .php per cui non vanno bene.....)

    Mi servirebbe qualcosa da implementare nel movie flash.... giusto??


  • Super User

    Ciao altod e benvenuto nel forum GT 🙂

    Nella tua pagina php, dove hai il tuo swf, dovresti provare a passare un valore random all' swf , in modo che quando fai refresh di pagina carica l'swf dal server e non dalla cache dell'utente.


  • User Newbie

    Ciao Flep.
    Mi aiuteresti a capire che codice mettere?
    Tieni presente che nella pagina carico il file swf attraverso il codice javascript generato da Dreamweaver....
    Ho provato con una funzione javascript che metteva nomefile.swf? + date time ect... ma non so perché al caricamento non mi mostra il file swf...
    C'è un altro sistema?


  • Super User

    Prova con questa soluzione PHP:

    [php]
    <?php
    $filename = "test_cache.swf";
    header('Content-type: application/x-shockwave-flash');header("Expires: Thu, 01 Jan 1970 00:00:00 GMT, -1 ");
    header("Cache-Control: no-cache, no-store, must-revalidate");
    header("Pragma: no-cache");
    $content = file_get_contents($filename);
    echo$content;
    ?>
    [/php]

    Da mettere nel file html dove hai inserito l' swf.


  • User Newbie

    no nada....
    uno simile lo avevo già provato ma non risolve il mio problema...

    credo che debba trovare una soluzione proprio nel file swf, in cui devo forzare il caricamento ogni volta della foto jpg.

    Per caricare da file esterni sia la foto che i testi, utilizzo questo actionscript:

    loadMovie("../flash/foto_calcio.jpg", fotocalcio);
    System.useCodepage = true
    MyLoadVars = new LoadVars();
    MyLoadVars.load("url_calcio.txt");
    MyLoadVars.onLoad = function(success){
    if (success) {
    url.text = MyLoadVars.variabile;
    }
    };
    stop();

    Nel primo rigo, nel loadmovie c'è un modo per forzare sempre il caricamento??


  • Super User

    Prova a dare un url assoluto alla path della jpg (http://)


  • User Newbie

    nulla... si comporta nella stessa maniera.
    Una volta caricato rimane quella foto....

    Stavo pensando al perché il testo invece si aggiorna subito....
    e mi sono ricordato di aver usato una funzione con if etc...

    var testo:LoadVars = new LoadVars();
    testo.onData = function (src:String):Void {
    if (src != undefined) {
    testo_calcio.text = src;
    } else {
    testo_calcio.text = "errore";
    }
    }
    testo.load("news_calcio.txt");

    e se provassi invece del loadmovie a fare una cosa simile per il jpg? Solo che il campo movie che conterrà l'immmagine è foto_calcio.(cosa??) al posto del .text che metto?


  • User Attivo

    scusa con math.random crei un nuovo file nella cache. Non trovando il vecchio aggiorni uno nuovo.

    loadMovie("../flash/foto_calcio.jpg**"+"?forzacache="+math.random()**, fotocalcio);
    System.useCodepage = true
    MyLoadVars = new LoadVars();
    MyLoadVars.load("url_calcio.txt");
    MyLoadVars.onLoad = function(success){
    if (success) {
    url.text = MyLoadVars.variabile;
    }
    };
    stop();


  • User Newbie

    Purtroppo dipende dal browser.
    Vai in Strumenti->Opzioni Internet ->Impostazioni
    Seleziona tra le check box sotto "Ricerca versioni più recenti delle pagine memorizzate" la voce "All' apertura della pagina" e questo problema non c'è più. E' una soluzione in contesti Intranet, non è granchè però come soluzione in ottica Web.