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

Ciao a tutti,
esiste per caso una funzione JS per mettere in pausa per un tot numero di
secondi l'esecuzione di uno script [Es: sleep(), wait(), pause() etc. etc.]
GRAZIE

 ha scritto nel messaggio
news:%lpp5.131274$dF5.2...@news.infostrada.it...

Esiste e si chiama SetTimeOut
setTimeOut ( codice_da_eseguire, tempo che deve aspettare prima di eseguire
il codice_da_eseguire)

 wrote in message
news:8o59go$661$1...@fe2.cs.interbusiness.it...


Usi Netscape o IE ???
Perchè se usi IE puoi scrivere una funzione in vbscript e richiamarla
all'interno della procedura in jscript!!!

 wrote in message news:8o5c4a$9i0$1...@news.mch.sbs.de...


Scusami mi sono sbagliato, pensavo che il vbscript implementasse la funzione
DoEvents...
L'idea mia era:
<script language=vbscript>
   function attendi()
       dim i
           for i = 0 to 10000
                [ all'interno di questo ciclo volevo mettere il DoEvents e
farlo contare....]
           next
   end function
</script>
ciao!

 bloccando l'esecuzione di ogni cosa per  x secondi.
Bloccare l'esecuzione non e' il massimo dell'eleganza... ^__^
Usando il setTimeout, pero', puoi cmq realizzare tutto cio' che ti serve.
Non ho presente cosa intendi fare (se ce lo esponi, forse e' piu' facile che
ti si possa aiutare), ma ti faro' un esempio banale:
Immagina nuovamente lo scroll di una pagina:
function scrollPage(){
    // codice dello scroll
    .
    .
    .
    if (!PageEnd)
        setTimeout("scrollPage();",500);
}
Questa funzione, una volta che e' stata chiamata la prima volta, ti scrolla
la pagina della finestra ogni mezzo secondo.
Ora, poniamo caso che tu vuoi che ogni 30 righe, lo scroll si soffermi 5
secondi, per permettere all'utente di leggere meglio la pagina (e' una
cavolata di esempio, ma e' giusto per introdurre il concetto).
Allora farai:
function scrollPage(){
    // codice dello scroll
    .
    .
    .
    if (!PageEnd)
        if (rowScroll % 30 ==0)
            setTimeout("scrollPage();",5000);
        else
            setTimeout("scrollPage();",500);
}
In questo modo, "fermi" l'esecuzione dello script per 5 secondi.
O meglio, lo script non sara' rieseguito prima che siano passati 5 secondi.

 di usarla.
Premesso che hai una pagina che carica il sito che supponiamo si chiama CaricaSito.html, puoi lavorare su questo:
<HTML>
<HEAD>
<SCRIPT>
<!--
var contatore=0;
function Conta()
    {
    finestra=window.open(CaricaSito,'caricasito','....');
    contatore++;
    document.conta.quanti.value=contatore;
    timer=setTimeout("caricasito.close()",10000); // 10 secondi
    timer2=setTimeout("Conta()",11000);// 11 secondi
    }
//-->
</SCRIPT>
</HEAD>
<BODY onLoad="Contatore()">
<FORM NAME="conta">
Contatore: <INPUT TYPE="text" NAME="quanti">
</FORM>
</BODY>
</HTML>
L'idea č che tu appena apri la pagina (onLoad) chiami la funzione Conta() cosě il ciclo parte.
La Conta() apre la finestra subito, e parte un timer che dopo dieci secondi la chiude. Nel frattempo parte un altro timer che dopo 11 secondi fa ripartire la funzione Conta() che riapre la
finestra....... eccetera eccetera.
Il campo TEXT del form ti informa di quante volte il ciclo č stato eseguito. Se interrompi basta che ti segni il valore attuale e la prossima volta cambi l'inizializzazione della variabile per non
perdere il conto.
(((( aperta parentesi
Se č un modo per incrementare artificialmente un contatore..... complimenti, bella idea :-)
chiusa parentesi ))))
Ciao, Riccardo
-----------------------------------------------------------------------
http://www.bottegasanlorenzo.it
http://www.jsdir.com
Need a JavaScript password?
http://www.agora.it/Ri.Riccardi/ingresso.html
-----------------------------------------------------------------------
"Any sufficientely advanced technology is indistinguishable from magic"
Arthur Charles Clarke
-----------------------------------------------------------------------
.
.
.
.
.
 . . . . . . I Fantastici 4 stanno arrivando . . . . . . manca poco! . . . . .