AJAX requests are now allowed to be done asynchronously for the same element.
All outstanding AJAX requests that are being processed are now exposed in the API, so they can be canceled if no longer needed.
Even if multiple AJAX requests happen at the same time and are not canceled, ajax.js is now smart enough to ignore multiple responses from the server if they come back in the wrong order. Now only the latest response is processed.

Because multiple AJAX requests can now be done asynchronously, it's possible to end up with multiple progress throbbers added to the page at the same time. Fortunately, by default elements are marked disabled while an AJAX event is occurring, so this would prevent multiple requests.

If you previously had this code, multiple AJAX requests would be throttled to only allow one at a time:

$form['my_button'] = array(
  '#type' => 'submit',
  '#title' => t('Update via AJAX'),
  '#ajax' => array(
    'callback' => 'my_ajax_response_function',
    'disable' => FALSE, // Defaults to TRUE.
  ),
);

Now, that same code would allow multiple AJAX requests if the user clicked multiple times. If you need to throttle the requests, you can either omit the "disable" line or set it to TRUE.

$form['my_button'] = array(
  '#type' => 'submit',
  '#title' => t('Update via AJAX'),
  '#ajax' => array(
    'callback' => 'my_ajax_response_function',
    'disable' => TRUE,
  ),
);

Or, if you want multiple AJAX requests to be allowed at the same time, you might leave the button enabled and disable the throbber (otherwise you'll end up with multiple throbbers, one for each request):

$form['my_button'] = array(
  '#type' => 'submit',
  '#title' => t('Update via AJAX'),
  '#ajax' => array(
    'callback' => 'my_ajax_response_function',
    'disable' => FALSE,
    'throbber' => FALSE,
  ),
);
Introduced in branch: 
1.0.x
Introduced in version: 
1.0.0
Impacts: 
Module developers