[Php-it] [JS] simulare lo sleep.

Davide Michel 'ZioBudda' Morelli michel at ziobudda.net
Thu Dec 28 14:57:58 CET 2006


Cristiano Verondini ha scritto:
> ________________SPONSOR______________
> Spazio pubblicitario libero.
> mail a info at ziobudda.net
>
>
>
> ________________SPONSOR______________
>
>>>    No, continui a pensare in modo procedurale, non in modo asincrono.
>>
>> Ma non centra procedurale o asincrono è pura logica di funzionamento.
>> Se non ho una funzione bloccante, ma che richiama solamente una
>> funzione-terza dopo un tot di tempo, allora la prima istruzione dopo
>> la funzione-non-bloccante deve essere un qualche cosa che mi fermi
>> l'esecuzione dello script.
>
>    Se ferma l'esecuzione dello script, non avendo i thread a 
> disposizione, chi cambierà il valore della tua globale?

La funzione che viene richiamata da setTimeout. E' li apposta.

>
>> Tralasciando che il mio era solo una prova se questo non è il modo me
>> ne dici uno tu. Ma che sia funzionante. Non solo a parole.
>
>    Mi sembra di avertelo suggerito. *DUE* funzioni. E quella che fa il 
> setitimeout() *termina* dopo averlo fatto.

Non funziona! Tutto quello che viene dopo setTimeout viene eseguito.

Esempio:

<html>
<head>
<script language="javascript" type="text/javascript">
var timerid;

function mostra() {
    tmp2= document.getElementById('miodiv');
    tmp2.innerHTML = "Io sono mostra()<br>";
    setTimeout("mostradopo()",1000);
    tmp2.innerHTML += "Io sono ANCORA mostra() <br>";
   
}

function mostradopo() {
    clearTimeout(timerid);
    tmp2= document.getElementById('miodiv');
    tmp2.innerHTML += "Io sono mostradopo()<br>";
}

</script>
</head>
<body>
<a href="#" onclick="mostra()">Clicca</a>
<div id="miodiv" style=""></div>
</body>
</html>

che da' come output:

Io sono mostra()
Io sono ANCORA mostra()
Io sono mostradopo()


Spero di essermi spiegato.

Michel.

-- 
Michel 'ZioBudda' Morelli                       michel at ziobudda.net
Consulenza sistemistica in ambito OpenSource.
Sviluppo applicazioni web dinamiche (LAMP+Ajax)
Telefono: +39-0240706096 --  Fax: +39-0291390660

http://www.ziobudda.net                         ICQ: 58351764  
http://www.ziobuddalabs.it                      Skype: zio_budda
http://www.ajaxblog.it                           



More information about the Php-it mailing list