jquery::ajaxStop() versus jquery::ajaxComplete()

Well, the short version is they serve different purposes, so the answer would be the “a combination of both for various situations” option. The basic rules are:

  • .ajaxComplete() – runs for every request that completes, use this when you want to do something with each request/result. Note that this doesn’t replace the success handler, since the parsed data is not one of the arguments (and it runs even when there’s an error) – you may want .ajaxSuccess() in some per-request situations instead.
  • .ajaxStop() – runs when every batch of requests completes, usually you’d use this in combination with .ajaxStart() for things like showing/hiding a “Loading…” indicator of some sort – or to do something else once a batch of AJAX requests finishes, like a master last step.

If you’re using this to parse your data, there’s probably a better way, in this case $.ajaxSetup(), where you can specify a success handler that gets the already-parsed data (e.g. JSON responses will be objects), like this:

$.ajaxSetup({
  success: function(data) { 
    //do something with data, for JSON it's already an object, etc.
  }
});

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)