What does "async: false" do in jQuery.ajax()?
async:false
= Code paused. (Other code waiting for this to finish.)async:true
= Code continued. (Nothing gets paused. Other code is not waiting.)
As simple as this.
Async:False
will hold the execution of rest code. Once you get response of ajax, only then, rest of the code will execute.
If you disable asynchronous retrieval, your script will block until the request has been fulfilled. It's useful for performing some sequence of requests in a known order, though I find async callbacks to be cleaner.
Does it have something to do with preventing other events on the page from firing?
Yes.
Setting async to false means that the statement you are calling has to complete before the next statement in your function can be called. If you set async: true then that statement will begin it's execution and the next statement will be called regardless of whether the async statement has completed yet.
For more insight see: jQuery ajax success anonymous function scope