31

Basically that's the question (parentheses are important)

Roatin Marth
  • 23,589
  • 3
  • 51
  • 55
CRISHK Corporation
  • 2,948
  • 6
  • 37
  • 52
  • I was wondering the same based on the two different answers here: https://stackoverflow.com/questions/11961438/implement-a-loading-indicator-for-a-jquery-ajax-call – SharpC May 11 '19 at 11:01

1 Answers1

80

.ajaxStart() and .ajaxStop() are for all requests together, ajaxStart fires when the first simultaneous request starts, ajaxStop fires then the last of that simultaneous batch finishes.

So say you're making 3 requests all at once, ajaxStart() fires when the first starts, ajaxStop() fires when the last one (they don't necessarily finish in order) comes back.

These events don't get any arguments because they're for a batch of requests:

.ajaxStart( handler() )
.ajaxStop( handler() )

.ajaxSend() and .ajaxComplete() fire once per request as they send/complete. This is why these handlers are passed arguments and the global/batch ones are not:

.ajaxSend( handler(event, XMLHttpRequest, ajaxOptions) )
.ajaxComplete( handler(event, XMLHttpRequest, ajaxOptions) )

For a single documentation source, the Global Ajax Events section of the API is what you're after.

OMi Shah
  • 5,768
  • 3
  • 25
  • 34
Nick Craver
  • 623,446
  • 136
  • 1,297
  • 1,155