Newsgroup: it.comp.lang.javascript
Titolo: Image

normalmente faccio i preload delle immagine usando:
pippo = new Image();
pippo.src = "aaa.gif";
function cambio(){
    document.images.imm.src = pippo.src;
}
tutto funziona se l'iimmagine č relamente un file, ma se l'immagine viene
generata dinamicamente, quello che succede sono due richieste successive
dell'immagine.
Come potrei fare il preloading di una immagine del genere, e possibbile
sostituire una immagine nel document senza usare src, ma usando direttamente
la variabile creata con new Image().
Grazie
Sergio

 la variabile creata con new Image().
E' quello che fai.
-- 
C'ya,
  ZER0 :: coder.gfxer.webDesigner();
"When you have eliminated the impossible, whatever remains,
however improbable, must be the truth." (S.H.)

 ha scritto nel messaggio
news:MPG.196dfb191...@130.133.1.4...


 pippo.src ='imm.jsp?parametri=valori'
Beh, allora ti vuoi del male :)
E' ovvio che se in un qualchemodo "eviti" il caching, tutto il 
meccanismo del preloading va a farsi benedire in quanto si basa su 
quello.
Se la tua e' un applicazione intranet, o cmq puoi limitarti ai browser 
W3C compliant, ci sono altre soluzioni. Se invece e' un website 
crossbrowser, devi cambiare approccio, cosi' non puoi fare il preload 
delle immagini.


Ti spiego cosa voglio nel dettaglio.
Ho una immagine che viene generata dinamicamente
ed una statica che dice che l'immagine è in caricamento.
Quando l'utende decide di aggiornare quella dinamica voglio che si veda
quella che dice che l'immagine è in caricamento. Una volta finita di
generare l'immagine dinamica deve sostituire quella statica.
Ma se uso il sistema delle image.src, la cos anon funziona e senza far eil
compelto reloading della pagina non so come affrontare il rpoblema.
Suggerimenti?
grazie
Sergio

 generare l'immagine dinamica deve sostituire quella statica.
Usa una finestra di popup dove carichi l'immagine in questione, oppure 
fai uso di layer, dove rendi visibile/invisibile il layer che ti 
interessa con l'immagine relativa.
Ma se non sei abituato all'uso del DHTML rischi di entrare nell'inferno 
della retro e multi compatibilita'.
Altrimenti, ti ripeto, dipendentemente dal tipo di visibilita' della 
tua applicazione, puoi usare il DOM W3C, pero' cosi' facendo tagli 
fuori tutti i browser non compliant.


 ha scritto nel messaggio
news:MPG.196e00e3c...@130.133.1.4...


 devo essere compatibile con explorer 5 e 6 e netscape 7
Ehe.. "devo essere compatibile" sembra che tu come persona fisica lo 
debba essere. :D
Prova a giochicchiare un po' con il DOM.
La cosa piu' "cool" sarebbe creare un elemento Image in memoria, e poi 
sostituirlo con quello presente del DOM tree, qualcosa tipo:
var el=document.createElement("IMAGE");
el.src="immage.jsp?par=val";
etc.
Altrimenti puoi optare per un piu' semplice display:none
Tieni due tag IMG che "swappi" tramite il settaggio dello stile 
display:none/display:block, cosi' il "preload" dell'immagine che vuoi 
visualizzare avviene direttamente sul tag.


 var el=document.createElement("IMAGE");
var el=document.createElement("IMG")
ovviamente, la stanchezza gioca brutti scherzi.


 ha scritto nel messaggio
news:MPG.196e04e3...@130.133.1.4...


 docuemnt.images.miaimg = el;
con document.replaceChild()
var el=document.createElement("IMG");
/* qui setti i tuoi attributi */
e quando devi fare lo "swap":
var oldEl=document.getElementById("myImage");
document.replaceChild(el,oldEl);
Questo almeno da specifiche W3C, poi bisogna vedere in pratica se vi 
sono problemi con i vari browsers o no.
Non ho mai optato per un approccio del genere, sinceramente.


 ha scritto nel messaggio
news:MPG.196e0bb21...@130.133.1.4...


 Node cannot be inserted at the specified point in the hierarchy
.. Ma ti sei andato a leggere la reference?
Io ti ho scritto del codice generale, non so com'e' la tua gerarchia.
Probabilmente devi semplicemente cambiare riferimento (ovvero non 
chiamare la replaceChild da document)
