Passo 8: timeout PDF Stampa
Articoli tecnici - Sviluppo & sistema
Scritto da Riccardo Zorn   
Martedì 28 Ottobre 2008 15:06
Per prima cosa implementiamo un timeout.
Mi serve principalmente per quelle domande di conferma che hanno una risposta predefinita che si usa al 90%...
 

Ciascuna funzione  di visualizzazione (ask, tell) include in fondo:

    if (arguments.length > 3)
    {
        this.doTimeout(okTimeoutSeconds);
    }
Quindi passando un parametro in più, ovvero il timeout in secondi, si attiva il timeout.
 
Gestisco tutto (setup, display dei secondi restanti, e chiusura) da una funzione sola:
 
_msgBox.prototype.doTimeout = function (okTimeoutSeconds)
{
    if (arguments.length>0)
    {
        // faccio partire il timeout. okTimeoutSeconds sono i secondi trascorsi
        // i quali verrà premuto il primo bottone automaticamente.
        this.okTimeoutProgress = okTimeoutSeconds;
    }
    if (this.okTimeoutProgress <= 0)
    {
        this.handleCallback(msgBox.button1Result);
    }
    else
    {
        this.button1Div.innerHTML = this.button1+'...'+this.okTimeoutProgress--;
        clearTimeout(this.okTimeoutID);
        this.okTimeoutID = setTimeout("msgBox.doTimeout()",1000);
    }
}

I file descritti in questo articolo si possono scaricare dall'introduzione
Ultimo aggiornamento Martedì 28 Ottobre 2008 15:44