Newsgroup: it.comp.lang.javascript
Titolo: problema scambio immagine da cache

sto sviluppando una galleria immagini personale jscript
dopo tante fatiche (per un profano) sono arrivato a un buon punto sul codice...
il problema è questo...
il codice ha la funzione di scambio immagini tramite effetto di transizione
loading div visible> opacity 50% (mentre carica l'immagine successiva)> controllo 
caricamento immagine successiva>fade out (50%>0%)>scambio immagine (al volo da cache)>fade 
in> loading div hidden.
il fattaccio è che il codice funziona un'amore con FF mentre con ie non funziona tutto 
come dovrebbe, ci deve essere qualche problema...
ovvero sembra che ff sia in grado di effettuare lo "scambio al volo da cache" mentre ie no...
ho una variabile con dentro l'immagine "preload"
preload.src = newimage;
ma il problema sembra essere quando invoco:
document.getElementById(imgplaceholder).src = preload.src;
ff effettua lo scambio all'istante mentre IE sembra che ricarichi completamente tutta 
l'immagine nonostante preload.complete risulti "true"
please help

 please help
questa è la gallery di test..
http://gx3.virtuale.org/testgallery/test.html
le prve che avevofatto erano con IE6 e FF2.0

 le prve che avevofatto erano con IE6 e FF2.0
non vedo differenze visuali né di tempo di caricamento tra iE6 e ff.
-- 
"Affacciati affacciati benedici, guardaci
 guardaci...guardaci!
 Tanto sono quasi duemila anni che stai a guardare!"
									    E.B.

 
è strano... a me con ff va bene..
con ie mi fa il "fade in" della vecchia e solo dpo visualizza la "nuova"
...

 
qualcun altro potrebbe verificare almeno?
ve ne prego almeno so che è il mio browser e nn mi faccio le seghe mentali davanti a sto 
codice....

 con ie mi fa il "fade in" della vecchia e solo dpo visualizza la "nuova"
forse, è molto veloce ...
sarà immagino la png che stai usando che non è supportata da IE...hai messo
un po' di alert in quella lunga parte js dedicata alla "sistemazione png
per IE"? Hai visto se esegue quell'attachEvent "onload" ?
-- 
"Voi abili a tenere sempre un piede qua e uno là
 avrete un avvenire certo in questo mondo qua
 però la dignità
 dove l'avete persa?"
									    V.R.

 
la correzione png funziona come dovrebbe ma ora per sicurezza provo a disattivare quella 
parte di codice... se l'ftp mi funziona di nuovo magari....

 
sai qual'è il fatto ridicolo che ora funziona correttamente anche a me..
anche senza castrare il codice....
nn capisco nn ho manco riavviato il pc oggi pomeriggio è da stamattina che lo lascio in 
standby  boh misteri della microsoft?
ps grazie mille e scusa se ti ho fatto prdere tempo sei stato ganlilissimo

 anche senza castrare il codice....
ho fatto dei nuovi test...
ieri x forza di cose essendo l'ftp di virtuale bloccato ho dovuto uppare su altervista
il risultato? su altervista va tutto liscio su virtuale no....
a questo punto mi sa che è diventato un problema di hoster
ma questo problema l devo risolvere su virtuale...
http://gx3.virtuale.org/testgallery/1/dn.html
 < nn va bene su ie (nemmeno castrando il 
codice x gestire correttamente i png)
http://gx3.altervista.org/testgallery/1/dn.html

 
http://gx3.altervista.org/testgallery/1/dn.html
posso porre il problema diversamente
anzicchè usare
document.getElementById(imgplaceholder).src = preload.src;
visto che l'immagine è caricata nella variabile
preload.src = newimage;
posso associare diretamente
document.getElementById(imgplaceholder) all'oggetto "preload" seza usare la proprietà src?

 a questo punto mi sa che è diventato un problema di hoster
Se fosse solo un problema di host, non dovrebbe funzionarti neppure con
Firefox.
Può darsi che sia una somma di cose. Passi forse da proxy o altro? Hai
verificato tutte le impostazioni di IE per quanto riguarda il caching? 
-- 
~ Ci siamo fatti una scopata cosi' eccezionale che anche i vicini hanno
fumato una sigaretta.

 
su entrambi ho impostati 10 mega di cache e a ogni test la svuoto
ho fastweb in fibra 10mbit... e sono nattato ma nn credo sia quello...
starno che su altervista va bene...
è come se su virtuale ci sia un prblema di "revalidate"...

 document.getElementById(imgplaceholder) all'oggetto "preload" seza usare la proprietà src?
Credo tu abbia qualche confusione con il concetto di preload. In pratica tu
fai precaricare l'immagine da qualche parte. Si utilizza un oggetto Image()
per praticità, ma potresti anche riempire la pagina di tag IMG nascosti; ul
succo è lo stesso.
Così, quando tu dici al browser di recuperare la risorsa
"
http://www.miosito.it/pippo.gif
", lui vede che quest'indirizzo ce l'ha in
memoria, e invece di scaricarsi la suddetta risorsa dal server un'altra
volta, pesca quella che ha in locale.
Non è che l'oggetto Image() fa quindi chissà cosa. Sempre per praticità
viene usata l'istruzione:
	document.getElementById(imgplaceholder).src = preload.src;
Perché potresti benissimo non riutilizzare preload.src e scrivere a mano
l'indirizzo, sarebbe esattamente la stessa cosa.
-- 
~ "Il debito pubblico è abbastanza grande da badare a sé stesso."
(Ronald Regan)

 
chiaro grazie :)

 ho fastweb in fibra 10mbit... e sono nattato ma nn credo sia quello...
Non si può mai dire. Comunque, fai uno sniffing delle richieste HTTP che il
browser invia, e delle risposte che riceve. In questo modo se è l'host che
fa la differenza, lo vedi da quello.
-- 
~ "Quando i morti camminano, signori, bisogna smettere di uccidere.
O si perde la guerra." (Zombie)

 
scusa la mia niubbaggine ma
esiste qualche programma che lo fa?
magari me ne puoi consigliare uno...




Quello che conosco io è LiveHTTP Headers, un addon per Firefox.
Googleggiando a giro, comunque, troverai informazioni a pacchi sugli http
sniffer (o analyzer).
-- 
~ "Non ci si uccide per amore, basta aspettare."
"Allora non mi uccido per amore, mi uccido per impazienza." (A.O. e M.T.)

 
grazie mille ora vedo :)

 
niente come immaginavo ie effettua la richiesta  dell'immagine 2 volte su virtuale mentre 
1 volta (come dovrebbe) su altervista...
ho notato che ie sembra nn fare il cachng... almeno in temporary internet files nn 
compaiono le immagini da cache....

 internet files nn compaiono le immagini da cache....
ps solo su virtuale, su altervista il caching lo fa!

 compaiono le immagini da cache....
Quindi non ti fa il caching.
-- 
~ "Ciò che il cuore conosce oggi, la testa comprenderà domani" (Seneca)

 Quindi non ti fa il caching.
solo su virtuale su altervista IE il caching eccome se lo fa..

 solo su virtuale su altervista IE il caching eccome se lo fa..
Si, ma appunto su "virtuale" il caching non lo fa. Altrimenti avresti i file
nella directory relativa. Quindi: le risposte che ti arrivano da altervista
e da virtuale DEVONO per forza differire in qualcosa, e quello lo vedi
analizzando gli HTTP HEADER di risposta. Inoltre: se su Firefox questo
problema NON CE L'HAI, è anche una questione di browser.
-- 
~ L'ingegnere non vive, funziona.

 
allora la risposta di è
virtuale:
HTTP/1.1 200 OK
Date: Tue, 14 Nov 2006 11:46:03 GMT
Server: Apache/1.3.33 (Unix) PHP/5.1.4
Vary: Host
Last-Modified: Mon, 13 Nov 2006 11:35:07 GMT
ETag: "5505da-7440-4558586b"
Accept-Ranges: bytes
Content-Length: 29760
Keep-Alive: timeout=12, max=100
Connection: Keep-Alive
Content-Type: image/jpeg
altervista:
HTTP/1.1 200 OK
Date: Tue, 14 Nov 2006 11:46:10 GMT
Server: Apache
Cache-Control: max-age=2592000
Expires: Thu, 14 Dec 2006 11:46:10 GMT
Last-Modified: Mon, 13 Nov 2006 21:12:43 GMT
ETag: "228288-7440-4558dfcb"
Accept-Ranges: bytes
Content-Length: 29760
Connection: close
Content-Type: image/jpeg
è evidente che altervista manda comandi di cache control
virtuale no
inoltre per il sito 
www.virtuale.org
 lo fa il caching  dando risposta per un'immagine  a caso:
HTTP/1.1 200 OK
Date: Tue, 14 Nov 2006 11:46:10 GMT
Server: Apache
Cache-Control: max-age=2592000
Expires: Thu, 14 Dec 2006 11:46:10 GMT
Last-Modified: Mon, 13 Nov 2006 21:12:43 GMT
ETag: "228288-7440-4558dfcb"
Accept-Ranges: bytes
Content-Length: 29760
Connection: close
Content-Type: image/jpeg
l'unica differenza tra 
www.virtuale.org
 e il mio sito su virtuale è che alla richiesta 
dell'immagine nel request header d 
www.virtuale.org
 compaiono in + queste righe oltre ad 
essere diverso il referrer
If-Modified-Since: Tue, 09 Mar 2004 14:55:02 GMT
If-None-Match: "2a0240-37-404ddac6"

 essere diverso il referrer
No, c'è un'altra differenza tra il tuo sito e virtuale/altervista. Negli
ultimi due casi la Connection è a close; nel tuo no.
Sono comunque tutte cose che esulano da questo NG, ti consiglio di
controllare ulteriormente le impostazioni di IE in merito alla gestione del
caching (se vuoi che si rifaccia un test noi dovresti però inserire immagini
più corpose, non ho tempo di navigare in mezzo ai vari temporary internet
files di IE), e dato che comunque c'è una differenza a livello di host
contattare quest'ultimo facendogli presente questa discrepanza. Quantomeno
ti chiarirà le idee.
Se vuoi fare ulteriori test, puoi sempre provare a fare una pagina in PHP,
forzando a mano tutti gli header necessari (tipo la connection: close), e
poi sparando sull'output stream il file jpeg, e vedere se viene cachato da
IE. Ma, come dicevo, il tutto esula da questo NG, e in tal caso dovresti
passare a it.comp.www.php.
-- 
~ "La malinconia è la felicità di esser tristi." (Victor Hugo)

ZER0 ha scritto:

ti ringrazio anticipatamente sei stato anche troppo disponibile ;)
farò come dici
e grazie ancora!

 ti ringrazio anticipatamente sei stato anche troppo disponibile ;)
Dimenticavo: se vuoi utilizzare un file PHP per fare da "ponte" tra le
immagini e l'invio al server, puoi forzare il recupero dalla cache del
browser usando lo status http 304 come risposta:
	header("HTTP/1.1 304 Not Modified");
Maggiori indicazioni le trovi sul manuale di PHP.
-- 
~ Se potete leggere questo, la mia donna č caduta.
(Letta sul retro di una maglietta di un motociclista)