Salve raga ho fatto una mia prima interfaccia che inserisce i dati di un forum
in un ArrayList in sessione.
La procedura funziona correttamente raccoglie i dati e li memorizza nell array con un semplice .add(oggetto), il mio problema lo riscontro quando clicco il pulsante invio di tipo <asp:Button
in maniera consecutiva e veloce. In questo caso il forum da me creato
memorizza più di una volta il record che voglio salvare (antirimbalzi), senza aspettare che termini l'esecuzione del primo click.
Non so come limitare possibili click ripetuti e veloci sul pulsante in maniera semplice ed elegante .
Tutto questo da come si puo capire mi crea molti grattacapi a livelo di cosistenza di dati ...
Modificato da Francescooo il 27 aprile 2017 09.58 -
Modificato da Francescooo il 27 aprile 2017 09.59 -
Modificato da Francescooo il 27 aprile 2017 09.59 -
Modificato da Francescooo il 27 aprile 2017 10.00 -
Modificato da Francescooo il 27 aprile 2017 10.03 -
Per ora l'unica soluzione trovata è questo codice, ma non penso sia elegante, sicuramente ci sarà qualche opzione in asp da settare, che mi puo evitare questo grattacapo. Questo per ora è il codice da me scrito che mi evita questo problema :
if (Session["FlagAntirimbalzo"] == null || ((String)Session["FlagAntirimbalzo"]).ToString().Equals("0"))
{
Session["FlagAntirimbalzo"] ="1";
//Qui inserisco il codice che memorizza nell ArrayLIst ..
Thread.Sleep(500);
Session["FlagAntirimbalzo"] = "0";
}
Uso un flag in sessione "FlagAntirimbalzo", questo flag viene controllato con un if non appena si entra nel metodo che gestisce l'evento click di "invioBottom". Il flag se = "0" fa eseguire la rutine altrimenti se = "1" ignora tutto. Inoltre al termine della routine prima di settare il flag a 0 inserisco uno slep di mezzo secondo, in questo modo tutti gli eventi che avvengono dopo il primo click nell'arco di 1/2 secondo (antirimbalzi) vengono scartati.
Esiste una soluzione più elegante per ottenere lo stesso risultato ?
Modificato da Francescooo il 27 aprile 2017 10.46 -
Modificato da Francescooo il 27 aprile 2017 10.47 -
Modificato da Francescooo il 27 aprile 2017 10.49 -
Modificato da Francescooo il 27 aprile 2017 10.50 -
Modificato da Francescooo il 27 aprile 2017 10.51 -
Modificato da Francescooo il 27 aprile 2017 10.52 -
Modificato da Francescooo il 27 aprile 2017 10.55 -
Modificato da Francescooo il 27 aprile 2017 10.58 -
Modificato da Francescooo il 27 aprile 2017 10.59 -
Modificato da Francescooo il 27 aprile 2017 11.01 -
Modificato da Francescooo il 27 aprile 2017 11.01 -
Modificato da Francescooo il 27 aprile 2017 11.10 -