Realizzare una funzione in Javascript per la generazione di una stringa random è piuttosto semplice. Il principio su cui si basa può essere quello di recuperare casualmente, tramite la funzione Math.random(), un carattere da una stringa prestabilita tante volte quante deve essere lunga la stringa che vogliamo generare.
<script type="text/javascript">
function generateRandomString(iLen) {
var sRnd = '';
var sChrs = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz";
for (var i = 0; i < iLen; i++) {
var randomPoz = Math.floor(Math.random() * sChrs.length);
sRnd += sChrs.substring(randomPoz, randomPoz + 1);
}
return sRnd;
}
</script>
Analizzando velocemente il codice della funzione generateRandomString si può notare che necessita di un parametro in ingresso, iLen, che deve essere un valore numerico intero e rappresenta la lunghezza della stringa random che la funzione restituirà.
La stringa costante dalla quale vengono prelevati i caratteri in modo casuale in base alle loro posizioni è rappresentata dalla variabile sChrs. Nell'esempio in questione contiene caratteri alfanumerici minuscoli e maiuscoli ma on è escluso che possa contenere anche simboli e caratteri speciali.
Come utilizzare la funzione:
<script type="text/javascript">
var stringa_random = generateRandomString(8);
alert(stringa_random);
</script>
Guarda lo script in azione:
Suggerimenti per l'uso: L'utilizzo di una stringa random può essere utile in molte situazioni durante la stesura di codice e prende particolare importanza nelle chiamate AJAX in quanto, passata come parametro, consente di evitare il problema del catching dei risultati nei browser come in alcune versioni di Internet Explorer. Questo problema si verifica quando si chiama più volte una pagina AJAX passando gli stessi parametri; il browser riconoscendo che la situazione della chiamata alla pagina è la stessa di una già effettuata in precedenza ripropone lo stesso risultato presente nella cache senza ricaricare la pagina stessa o rieseguire il codice all'interno. Questa situazione può essere utile in determinate situazioni come ad esempio una normale navigazione di un utente tra le pagine di un sito web evitando così inutili caricamenti di contenuti statici già effettuati in precedenza... ma cosa può succedere se la pagina chiamata serve ad esempio per inserire un prodotto nel carrello? Può succedere che dopo aver cliccato sull'apposito bottone ed aggiunto il prodotto nel carrello la prima volta, nel caso in cui si tentasse di aggiungere un'altra volta al carrello lo stesso prodotto nella stessa quantità l'operazione non andrebbe a buon fine e non succederebbe niente... e come si può immaginare questo può compromettere le vendite.
Quello che succede è esattamente quello che è stato descritto poco sopra, ovvero il browser riceve una chiamata AJAX alla pagina con le funzioni per aggiungere i prodotti al carrello, ad esempio codice prodotto '123-45' e quantità '1', la seconda volta ritrovandosi sempre gli stessi paramteri di codice prodotto e quantità non esegue la pagina ma utilizza la cache, pertanto se come parametro oltre al codice prodotto e la quantità passassimo anche una variabile contenente la nostra stringa random il browser interpreterebbe le chiamate alla pagina in questione sempre come se fosse la prima volta che si esegue tale pagina in virtù della presenza della stringa random che cambia ad ogni esecuzione del codice.
Nessuno ha ancora commentato questo articolo, fallo tu per primo!
Scrivi un Commento