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

Davide Michel 'ZioBudda' Morelli michel at ziobudda.net
Thu Dec 28 10:49:53 CET 2006


Ciao all. Sto cercando di simulare la funzione slepp, ovvero fermare
l'esecuzione della pagina HTML (leggasi: codice JS) per un numero
arbitrario di secondi.
Online ho trovato questa funzione:

function sleep(n)
{
    var now = new Date();
    var exitTime = now.getTime() + (n*1000);
    while (true) {
        now = new Date();
            if (now.getTime() > exitTime) return;
    }
}

Ora pero' ho uno strano comportamento che posso riassumere con questo
esempio: scrivere a rutime un qualche cosa in un div e poi fermare lo
script per 1 secondo.
Sembra una bazzecola, ma invece mi da un problema: quello che voglio
scrivere nel div arriva solamento dopo che lo script ha ripreso a
funzionare. E non capisco il perche'.

Ecco l'esempio:

<html>
<head>
<script language="javascript" type="text/javascript">
function sleep(n)
{
    var now = new Date();
    var exitTime = now.getTime() + (n*1000);
    while (true) {
        now = new Date();
            if (now.getTime() > exitTime) return;
    }
}

function mostra() {
    tmp = document.createElement('input');
            tmp.setAttribute('type','text');
            tmp2= document.getElementById('miodiv');
            tmp2.appendChild(tmp);
             //Questa l'ho scritta io per provarle tutte.
            tmp2.innerHTML = tmp2.innerHTML;
            sleep(1);
}
</script>
</head>
<body>
<a href="#" onclick="mostra()">Clicca</a>
<div id="miodiv" style=""></div>
</body>
</html>

Ho lo stesso problema sia su FF2.0 che su IE 6.

Grazie e ciao.

M.

-- 
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