Newsgroup: it.lavoro.professioni.webmaster
Titolo: Flip & flop

Un cliente mi ha chiesto di mettergli on line un page flipper della sua 
rivista. Primo numero ok, metto il secondo, che deve *sostituire* il primo, 
e la cache, sia di FF che di IE continua a tenere il vecchio e a mostrare 
quello. Come se n'esce in modo trasparente per l'utente?
Saluti.
Luciano 



Cambiando l'URL del flipper (ed eventualmente dei file che carica), in un 
modo o nell'altro. Per esempio, in PHP, puoi fare una cosa del genere:
<object blablabla>
 <param name="movie" value="flipper.swf?<?php echo filemtime
("flipper.swf"); ?>" >
</object>
In alternativa, devi far servire il flipper (e le sue eventuali 
componenti) dauno script che imposti i parametri della cache (in PHP, 
tramite header()), o modificare la config di apache perche` li imposti lei 
per quel file.
Bye.

 per quel file.
Ma non c'� un modo di dare un expire al flipper o agli SWF?
Saluti.
Luciano 

 Saluti.
http://www.ciarpame.com/2009/01/14/far-future-expires-header-come-e-perche-iis-apache-tomcat-php-asp-jsp/
-- 
-------------------------------------------
Paolo De Dionigi
www.atfriends.net
Responsabile Tecnico Zen Cart Italia

 Ma non c'ï¿œ un modo di dare un expire al flipper o agli SWF?
C'ï¿œ, se non ricordo male, di dare un comando "force-revalidate" cosï¿œ che 
il browser possa cachare in locale il file ma deve andare comunque sul 
server a chiedere se c'ï¿œ una versione piï¿œ recente. Nel caso ci sia un 
file nuovo questo viene inviato al browser, altrimenti viene solo 
restituito un codice di "pagina non modificata" e il browser usa la 
cache locale.
Questo force-revalidate lo puoi mettere da programma o da webserver 
(almeno in apache si puï¿œ fare)
Francesco

 
http://www.ciarpame.com/2009/01/14/far-future-expires-header-come-e-perche-iis-apache-tomcat-php-asp-jsp/
Sul server non posso intervenire, � un hosting. Ho messo nella pagina (anzi, 
ne ho creata una nuova), come suggerito,
<% Response.CacheControl = "must-revalidate" %>
<% Response.Expires = -1 %>
ma continua a caricare il vecchio.
Saluti.
Luciano

 sito tutti i giorni mi scarico ogni volta il .swf....
Come proposto da Alessandro l'url cambia solo alla modifica del file,
cos� te lo riscarichi solo se � cambiato. Se invece di cambiare swf
cambi solo il contenuto di una cartella, o di un xml, puoi usare
filemtime("flipper.xml") o ("pagina1.jpg") e cos� via.
-- 
ValeRyo
CBR600F "Cerbero" - 
http://www.slimmit.com/go.asp?6YT
GamerTag: 
http://card.mygamercard.net/IT/nxe/ValeRyo76.png
 

 filemtime("flipper.xml") o ("pagina1.jpg") e cos� via.
Grazie, ma non ho capito cosa mi state suggerendo.
In miodominio/flip ho i due swf generali, che non cambiano mai. Poi ho due 
sottodir, pages/regular e pages/large con dentro gli swf alle due 
risoluzioni. Il link dalla home punta ad una pagina in /flip, vorrei evitare 
di dover modificare ogni volta  il puntamento dalla home.
Saluti.
Luciano

 In miodominio/flip ho i due swf generali, che non cambiano mai.
Ok, nella pagina che chiama gli swf generali, invece di linkare
pippo.swf linki pippo.swf?<?php filemtime("regular/pippo.swf"); ?>
In questo modo il link cambier� in base alla data di modifica di
regular/pippo.swf.


 regular/pippo.swf.
Come ho detto...sono in iis/asp:-)
Saluti.
Luciano

"Luciano (DOC)" <lucia...@luciano.doc> ha scritto nel messaggio
news:4a390e24$0$18926$
4faf...@reader2.news.tin.it

iis supporta anche il php, eh :-)
Comunque 
http://www.w3schools.com/ASP/asp_ref_file.asp


 Comunque 
http://www.w3schools.com/ASP/asp_ref_file.asp
Grazie, ma come ricavare le informazioni su un file lo so. Quello che non 
capisco del tuo suggerimento, � cosa cambia se parametrizzo il link con la 
data del file.
La struttura � la seguente: la home linka flip/flip.asp, dentr flip.asp 
viene caricato pageflip_loader.swf,  in flip ci sono due sottodir che 
contengono le pagine in alta e bassa risoluzione. Io credo che siano queste 
ad essere cachata, modificare come dici tu non credo cambi niente.
Sempre se ho capito quello che suggerisci....
Saluti.
Luciano 

 credo cambi niente.
Se cos� fosse (ovvero che � il plugin flash a caricare la pagina dalla 
cache)
allora puoi fare un'altra cosa ancora: con FlashVars valorizzi una variabile
del loader con il mtime del file nella sottodir.
Con il loader, invece di fare il loadmovie di pippo.swf fai
loadmovie('pippo.swf?mtime=' + variabile);


 loadmovie('pippo.swf?mtime=' + variabile);
Seeeee :-)
La configurazione delle pagine sta in un file xml, se devo editarlo a manina 
ogni volta tanto vale cambiare il link dalla home.
Grazie cmq per l'interessamento.
Ciao.
Luciano

 ogni volta tanto vale cambiare il link dalla home.
Potrebbe non essere una soluzione cosï¿œ raminga [1], se la modifica 
dell'url del link viene fatta in modo automatico, via asp, e senza 
influenzare il comportamento della pagina destinazione.
Se ad esempio nella home (che presumo essere una pagina dinamica) hai un 
link con href="rivista.asp" puoi sostituirlo con 
href="rivista.asp?random=valoreCasuale"[2].
Il parametro non serve ma questo dovrebbe bastare per forzare la cache a 
ricaricare la pagina destinazione ad ogni visita [3].
Comunque insisterei con i canonici (che in parte hai giï¿œ provato) 
expires e cache-control (max-age, no-store, must-revalidate): di solito 
funzionano, magari con parametri diversi da come hai provato sinora.
Per darti consigli piï¿œ mirati servirebbero informazioni piï¿œ dettagliate, 
sorry... :)
Ciao.
[1] parlo del cambiamento del link nella home, non di quanto suggerito 
da ValeRyo :)
[2] ovviamente valoreCasuale viene rigenerato ogni volta, ï¿œ solo 
un'alternativa all'uso della data suggerito nel post precedente
[3] perlomeno con Java io adotto da anni una soluzione di questo tipo e 
funziona adeguatamente (per quanto non sia certo elegante)

 e funziona adeguatamente (per quanto non sia certo elegante)
Anche io ho usato soluzioni del genere con php e flash, ma di solito
evito di usare valori casuali per non consumare banda e non rallentare
le pagine: l'idea di Alessandro del mtime � ottima proprio perch�
forza il reload solo quando necessario.


 manina ogni volta tanto vale cambiare il link dalla home.
Non avevo pensato di farlo a mano.
Anche se la configurazione � in un file xml da qualche parte ci sar�
'sto benedetto loadmovie? Bene, � l� che vai a mettere il parametro
che fa cambiare il nome.


 quello. Come se n'esce in modo trasparente per l'utente?
Una delle tecniche più semplici e sicure è quella di usare un numero
aleatorio generato da javascript, così non carichi il server con
inutili lavori, in pratica
url?numeroaleatorio
la stessa tecnica viene usata nei captcha per lo stesso motivo,
evitare che l'immagine precedente venga mostrata di nuovo a causa
della cache
esempio:
numeroaleatorio = Math.round(1+(Math.random()*100));
url = url +'?'+numeroaleatorio;

 aleatorio generato da javascript, cos� non carichi il server
Sinceramente non mi sembra molto sicura come tecnica: quello che succede 
sul server lo puoi ragionevolmente controllare e monitorare, quello che 
succede sul browser no.
Non sono poche le PA o enti semi-pubblici dove i browser di default 
hanno disinstallato JS (e flash, java, etc...), ad esempio.
Poi il carico in CPU per generare lato server un numero random o un 
timestamp � infinitesimale.

 forza il reload solo quando necessario.
Concordo.
La mia era una indicazione alternativa e generica che ï¿œ utile solo se 
serve un reload della pagina a ogni visita (come avveniva nei casi che 
citavo).

 inutili lavori, in pratica
Generare un numero random non mi sembra un gran lavoro per il server:-)
Cmq, ho provato (lato server) e non funziona.
Saluti.
Luciano 

 sorry... :)
Se proprio insisti!:-)
Che infio ti servono?
Saluti.
Luciano

 Risultato: FF continua a caricare quello che ha in cache.
Hai provato anche a mettere un numero random nel loadmovie?
Magari l� risolvi.


 Magari l� risolvi.
Yes, as I wrote.
Saluti.
Luciano

"Luciano (DOC)" <lucia...@luciano.doc> ha scritto nel messaggio
news:4a3a51c7$0$18937$
4faf...@reader2.news.tin.it

Ehm... dove? non l'ho letto mica.
Io intendo direttamente nel filmato, nell'actionscript.


 Io intendo direttamente nel filmato, nell'actionscript.
Il sistema di flippaggio che sto usando io ha un loader che si chiama 
pageflip_loader.swf, ho parametrizzato questo nel modo che ho descritto 
nell'ultimo reply a Paolo.
Grazie a tutti per aver preso a cuore la faccenda:-)
Saluti.
Luciano

 Grazie a tutti per aver preso a cuore la faccenda:-)
E mo' sono curioso :-)


 Esempi o link esplicativi?
Sono tutti tag meta:
http-equiv="Pragma" content="no-cache"
http-equiv="Expires" content="-1"
http-equiv="Cache-Control" content="no-cache"
oppure:
http-equiv="Cache-Control" content="no-store"
oppure:
http-equiv="Cache-Control" content="max-age=300,must-revalidate">
per la differenza, teorica e tutta da verificare nella pratica delle 
implementazioni dei vari browsers[1], vedi:
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.9
In ogni caso mi permetto di suggerire l'uso di no-cache per evitare 
completamente il caching e di max-age per vincolarlo a date/tempi.
In asp dovresti trovare i corrispondenti metodi sull'oggetto response:
response.expires = -1
response.CacheControl = "NO-CACHE"
o il generico:
response.AddHeader (es. "PRAGMA", "NO-CACHE")
Usando i primi 3 tag meta indicati sopra posso confermarti che con 
pagine "standard" (senza swf, che uso molto raramente) funziona 
correttamente (la cache resta vuota).
Spero di averti fornito qualche indicazione utile.
Ciao.
[1] vedi come esempio estremo l'accrocchio suggerito da MS per IE <= 4:
http://support.microsoft.com/kb/222064

 reale dalla cache.
Anch'io temo che il problema sia particolare del plug-in flash.
Comunque un collega mi conferma che i tag meta che ho indicato 
nell'altro post di poco fa funzionano anche per gli swf...
  vedremo! ;)

 nell'altro post di poco fa funzionano anche per gli swf...
In effetti sembra corrispondere:
http://kb2.adobe.com/cps/147/tn_14743.html
Perï¿œ altra alternativa suggerita (sempre sito adobe ma sulla parte ad 
abbonamento) ï¿œ quella di parametrizzare il loader, cosa che giï¿œ si ï¿œ 
rivelata insufficiente...

 E mo' sono curioso :-)
Beh, alla fine ho risolto cos�:
ho creato una dir "flip", con una sottodir per ogni numero della rivista 
(001, 002, ecc)
In ogni sottodir ho replicato tutta la mappazza per flippare ed ho messo gli 
swf relativi.
Nella home ho messo due righe di codice che leggono la dir "flip" e vedono 
qual'� la sottodir con il numero pi� alto, linkando quella.
Rozzo ma efficace:-)
Grazie a tutti per la collaborazione.
Saluti.
Luciano