Newsgroup: it.comp.lang.javascript
Titolo: Problema non semplice swap immagini

Salve a tutti,
ho fatto alcune funzioni in javascript che compiono alcune operazioni sugli
elementi di un form. Fin qui nessun problema.
Il problema è che, siccome le operazioni richiedono un po' di tempo, volevo
far apparire un'immagine animata che dicesse "working..".
Per fare ciò ho messo un'immagine bianca (name="status" src="noworking.gif")
all'interno del documento per poi "swapparla" all'inizio e alla fine di ogni
funzione:
function funzione1()
{
 working(1);
.... //operazioni lunghe
 working(0);
}
function funzione1()
{
 working(1);
.... //altre operazioni lunghe
 working(0);
}
function working(val)
{
 if (val == 1) document.images["status"].src = "img/working.gif";
 else document.images["status"].src = "img/noworking.gif";
}
Il problema è che la funzione viene eseguita, ma il risultato viene mostrato
solo alla fine. In questo modo non vedrò mai l'immagine "working.gif" perchè
la mette e la toglie insieme.
dando per scontato che la sintassi è giusta, le immagini esistono eccetera,
come posso fare per visualizzare l'immagine prima che la funzione termini e
sopratutto prima che le operazioni vengano eseguite?
Accetto consigli di qualsiasi tipo!!
Grazie a tutti
LAMASE

 LAMASE
hai provato a, invece di fare lo swa dell'immagine, ad usare un livello
che rendi visibile prima dell'operazione e nascodi ad operazione finita?
bye
-- 
emy

Ci ho provato ora, ma ero sicuro che non avrebbe funzionato.
Se il principio che mi impedisce di fare lo swap è che prima deve finire le
operazioni della funzione, cambiare la visibilità di un layer o swappare
un'immagine è uguale.
Forse non aspetta di finire le operazioni per visualizzarle, ma la mole di
operazioni impedisce al browser di occuparsi fisicamente dello swap (o di
mostrare/nascondere il layer) prima del termine della funzione stessa.
LAMASE

Evidentemente le modifiche effettuate dagli script non vengono visualizzate immediatamente, bensě soltanto dopo che lo script č
terminato. Prova dunque ad inserire una pausa dopo il primo swap, per dare tempo al browser di visualizzare la modifica
dell'immagine:
function funzione1()
{
    document.images["status"].src = "img/working.gif";
    setTimeout("funzione2()", 100);
}
function funzione2()
{
    // Operazioni lunghe
    document.images["status"].src = "img/noworking.gif";
}
Non l'ho provato ma dovrebbe funzionare.
--
LAMASE <a@b.c> wrote in message 9mdbot$mg5$1...@fe2.cs.interbusiness.it...
Salve a tutti,
ho fatto alcune funzioni in javascript che compiono alcune operazioni sugli
elementi di un form. Fin qui nessun problema.
Il problema č che, siccome le operazioni richiedono un po' di tempo, volevo
far apparire un'immagine animata che dicesse "working..".
Per fare ciň ho messo un'immagine bianca (name="status" src="noworking.gif")
all'interno del documento per poi "swapparla" all'inizio e alla fine di ogni
funzione:
function funzione1()
{
 working(1);
.... file://operazioni lunghe
 working(0);
}
function funzione1()
{
 working(1);
.... file://altre operazioni lunghe
 working(0);
}
function working(val)
{
 if (val == 1) document.images["status"].src = "img/working.gif";
 else document.images["status"].src = "img/noworking.gif";
}
Il problema č che la funzione viene eseguita, ma il risultato viene mostrato
solo alla fine. In questo modo non vedrň mai l'immagine "working.gif" perchč
la mette e la toglie insieme.
dando per scontato che la sintassi č giusta, le immagini esistono eccetera,


 ha scritto nel messaggio
news:c3ti7.25625$4b5.6...@news6.giganews.com...


Ok, funziona (anche se l'immagine non si anima...)
LAMASE