function checkuser(user) {
var ret = false;
$.ajax({ type:'POST', url:'user.php',
async:false,
data:{'user':user},
success:function (data) {
if (data == 1) ret = true
} });
return ret;
}
I use bvalidator to validate fields. It seems to fire this function on every keypress and the user is not able to continue typing before the ajax call is competed. I’m not really sure what to do here.
How could I make the function not be ran more than once every two seconds for example?
You need to get rid of
async:falsebut you also need to modify your code to work asynchronously. The synchronicity is what is causing your UI to ‘freeze’.Maybe you could try setting a timeout that will run 2 seconds after a key is pressed on your input, but if another key is pressed it restarts that timer. So in essence it will only after two seconds of no keystrokes.
You’ll need to update the checkuser ajax call to have a smarter callback to work async: