What Is a Race Condition?
Just thought I would put a post out on something I learnt today that can occur when using ajax- a race condition. A race condition is is where the output or result of something is dependent on the timing of other events/code. A good example of this is below:
function ValidateInput() {
//some slow running code here...
}
function SaveForm() {
//save the form
}
<form> <input type="text" onchange="ValidateInput()" /> <input type="button" onclick="SaveForm();" value="Submit" /> </form>
The problem here can occur when the user hits the Submit button before the validation method can finish. One way to overcome this is use a semaphore to indicate whether the form still needs validating on the SaveForm method.