Newsgroup: it.comp.lang.javascript
Titolo: URGENTE!!!!!!!!

...ne va del'operatività del mio sito!!!!!!!!!!!!!!!!!!!!!!!
vi spiego il problema: ho ricostruito un menu a tasti "soft", quelli che
cambiano al passaggio del mouse, quelli dell'Internet Explorer, per capirci.
Il problema era che il cambiamento non era istantaneo, in quanto, quando il
mouse passava sul tasto, l'explorer si metteva a caricare la nuova immagine,
che, anche se pesava non più di 2 Kb, data la lentezza della rete, ci
metteva diversi secondi ad apparire, vanificando completamente l'effetto
voluto. Su questo ng mi è stato consigliato di usare il seguente codice
var immagine = new Image()
immagine.src = "imm.gif"
e poi
document.images[n].src = immagine.src
oppure, nel caso <img id="nomeimmagine".........
nomeimmagine.src = immagine.src
La filosofia è di creare un'oggetto immagine, in cui caricare l'immagine e
passarla diettamente all'oggetto destinazione senza doverla ricaricare dal
server. Insomma: precaricare l'immagine all'apertura della pagina per averla
a disposizione istantanea quando ne hai bisogno
Sembrava tutto funzionare per il meglio, ma ho scoperto che era tutto frutto
della cache del Working offline di Internet Explorer, in quanto le mie
pagine, prima di uploadarle sul server, le provo offline sul mio computer.
Infatti, non andava a caricarsi le immagini dal percorso, ma se le andava a
caricare dalla cartella della cache, e quindi sembrava andasse tutto bene,
in quanto la velocità dell'hard disk, rispetto a quella della Rete, è
istantanea. L'imbroglio è uscito fuori quando ho aggiunto un pulsante e
andavo tutto lentissimo. Per fare un'ulteriore prova, ho fatto il seguente
esperimento: ho preso un dischetto e ci ho un'immagine, chiamata a.gif. Ho
buttato giù queste due righe di codice (tra il <BODY> e </BODY>):
<img>
<script language="JavaScript"><!--
var imm = new Image();
imm.src = "a:/a.gif";
window.alert(a.complete);
function b()
{
    document.images[0].src = imm.src;
}
--></script>
<input type="button" name="a" onclick="b()">
Ed ho scoperto la seguente cosa: quando arriva a imm.src = "a:/a.gif" carica
dal dischetto, poi il window.alert restituisce casualmente o true o false
(non si sa bene secondo quale legge....) e (cosa più bella), quando clicco
sul button e avvio la funzione, si rimette a caricare da disco........Se io
levo il disco non compare l'immagine, se lo lascio, compare; come dire "ma
non era meglio a questo punto mettere <img src="a:\a.gif">, senza scrivere
quelle quattro righe di JScript apparentemente inutili?????
Sembra quasi che imm.src funzioni da "contenitore" per il nome del file, ed
è quindi assolutamente inutile. A me serve un metodo per caricare le
immagini all'inizio (apertura pagina) per poi averle disponibili & in modo
istantaneo dopo. C'è un metodo per farlo? E se il metodo è quello che mi
hanno consigliato perchè non funziona?
--
bye by Neo
webmaster de "la homepage di Neo"
http://web.tiscalinet.it/neowebpage

Inserisci in HEAD il seguente script...
<SCRIPT LANGUAGE="javascript">
  pulsante1 = new Image() ; pulsante1.src="immagine1.gif"
  pulsante2 = new Image() ; pulsante2.src="immagine2.gif"
  pulsante3 = new Image() ; pulsante3.src="immagine3.gif"
</SCRIPT>
Ciao!
Davide

 wrote in message
CgNv3.15141$98.1...@typhoon.libero.it...

Ho lo stesso problema
ho provato la soluzione proposta..
non serve  a niente..
quando si caricano le pagine dal server remoto il cambio di immagine è
lentissimo.....
io ho un menu con 9 voci e ogni volta che si passa con il puntatore su una
di esse alla sinistra dovrebbe apparire un pallino e poi scomparire quando
si esce..
se passo il puntatore su tutte le voci abbastanza velocemne ma non troppo mi
appaiono tutti i pallini
e poi dopo piano piano scompaiono....
ho poi messo dopo le righe   var immagine1 = new Image(); immagine1.src=
"path/nomefile.jpg"
un bel
while (immagine1.complete && immagine2.complete){}
ma.. stessa musica..
ad ogni passaggio ed uscita del puntatore
carica l'immagine1 e l'immagine2.. e si vede benissimo anche dal led del
modem...
DOV'E' L'INGHIPPO ????????
Alessandro C.

Sbagliato....
il while č cosě
while (!immagine1.complete || !immagine2.complete) {  var zxy = 1 }
// zxy = 1 tanto per far fare qualcosa al while
ma nel caricamento da server il loop si blocca come se non si risolvesse
mai.....
sbaglio qualcosa ?
Alessandro C.

Allora, faccio il punto della situazione....
uso
var immagine1 = new Image() : immagine1.src = "path/nomefile1.jpg"
var immagine2 = new Image() : immagine2.src = "path/nomefile2.jpg"
while(!immagine1.complete || !immagine1.complete) {
    if (!confirm("Caricamento non completo, continuo ?")){
        break
    }
}
alert("Tempo impiegato nel caricamento: " + Tempo)   /* Tempo lo ricavo da
due getTime() prima e dopo
non annullo mai il caricamento quindi sono sicuro che questo viene
completato prima di giungere ad uno degli eventi onMouseOver o onMouseOut...
ma il cambio di immagine al passaggio del mouse è lentissimooooooooo
e vedo il modem che lavora andando sicuramente a cercare il file sul
server...
oh mio dio... oh mio dio...
prima che i miei vicini di casa mi vedano irrompere in casa loro da una
crepa nel muro provocata dalle mie testate....  qualcuno interrompa questa
agonia..  PLEASE ! ! ! !! !
Alessandro C.