Ho un modulo semplice per l'utente che si iscrive al mio sito; con campi email, username e password. Ora stiamo cercando di implementare una convalida Ajax in modo che l'utente non debba pubblicare il modulo per scoprire se il nome utente è già stato preso. Posso farlo sia su evento keyup che su testo sfocatura . La mia domanda è, quale di questi è davvero il modo migliore di fare?
keyUp
Dal punto di vista dell'utente, sarebbe bene se la convalida fosse fatta come e quando stanno scrivendo, (su evento key up) - ovviamente, aspetto per mezzo secondo che veda se l'utente interrompe la digitazione prima di disattivare la richiesta e l'utente può apportare immediatamente le eventuali modifiche.
Ma questo significa che sto inviando più richieste che se avessi convalidato il nome utente sull'evento Sfocatura .
Sfocatura
Il numero di richieste sarà molto più basso quando la convalida viene eseguita sull'evento di sfocatura, ma questo significa che l'utente deve effettivamente andare via dalla casella di testo, osservare il risultato della convalida e, se necessario, tornare indietro per fare qualsiasi cambia e ripeti l'intero processo fino a quando non lo fa bene.
Ho dato uno sguardo veloce a google, tumblr, twitter e nessuno ha effettivamente convalidato il nome utente sugli eventi keyup, (diamine, tubmlr aspetta che il modulo venga pubblicato) ma posso giurare che ho visto convalide keyup in un sacco di posti anche
Quindi, tornando alla domanda, le convalide di convalida saranno troppe per il server, è un sovraccarico inutile? o vale la pena prendere questi colpi per offrire all'utente un'esperienza migliore?
ps: tutte le mie convalide regex ecc sono già state fatte su javascript e solo quando passa tutti questi altri criteri invia una richiesta al server per verificare se esiste già un nome utente. (E il server sta facendo un select count(1) from user where username = ''
- niente di sostanziale, ma ancora abbastanza da occupare qualche risorsa)
pps: Sono su asp.net, stack MS SQL., se questo è importante.