Articoli / Javascript
Timer e Intervalli in Javascript
Author: Tafaz
Visits: 1216
Date: 07.01.2007
Spesso quando si scrive del codice Javascript si ha la necessità di attendere del tempo tra l'esecuzione di un'instruzione ed un'altra, ad esempio attendere il caricamento di un'immagine quando si usa l'oggetto Image, per ottenere questo spesso si incappa nell'errore comune di eseguire un ciclo che attende la verifica di una condizione come nel listato seguente:
Non essendo Javascript MultiThread questo ciclo while eseguirà un loop infinito che blocca il browser dell'utente facendo aumentare l'uso della CPU al 100%. Per evitare questo problema si deve usare la funzione setTimeout che imposta un timer in millisecondi e allo scadere di questi esegue un'istruzione e la inseriremo in una funzione ricorsiva
var idTimer; img = new Image();
img.src="preload.gif";
isLoaded(img);
function isLoaded(img){
if(img.complete!=true){
idTimer = setTimeout('isLoaded(img)',50);
} else {
alert('Immagine caricata');
}
}
Author: Tafaz
Visits: 1216
Date: 07.01.2007
img = new Image(); img.src="preload.gif"; while(img.loaded!=true){ }
Non essendo Javascript MultiThread questo ciclo while eseguirà un loop infinito che blocca il browser dell'utente facendo aumentare l'uso della CPU al 100%. Per evitare questo problema si deve usare la funzione setTimeout che imposta un timer in millisecondi e allo scadere di questi esegue un'istruzione e la inseriremo in una funzione ricorsiva
var idTimer; img = new Image();
img.src="preload.gif";
isLoaded(img);
function isLoaded(img){
if(img.complete!=true){
idTimer = setTimeout('isLoaded(img)',50);
} else {
alert('Immagine caricata');
}
}
Page 1 of 2
>>
Se vuoi discutere con noi su questo articolo o comunque vuoi porci delle domande usa il nostro Forum

