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

来源:互联网 发布:促进身高的运动 知乎 编辑:程序博客网 时间:2024/05/20 16:10

http://stackoverflow.com/a/4421115/2177408

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.  }});

0 0
原创粉丝点击